staging.inyokaproject.org

KDE Servicemenü "video_convert_h264_nvenc" GPU Hardwarebeschleunigung: konvertieren + rotieren

Status: Ungelöst | Ubuntu-Version: Kubuntu 21.04 (Hirsute Hippo)
Antworten |

trollsportverein

Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 2627

Mit entsprechender Nvida GPU ist Hardware beschleunigtes encodieren von Videos mit nvenc möglich. Auf meiner Maschine macht das einen gewaltigen Unterschied, so braucht ein ca. 3 Minuten Video ohne nvenc ca. eine Dreiviertelstunde Encodiervorgang. Mit nvenc hingegen geht das in unter einer Minute. Von der Qualtiät her wirkt dabei das mit nvenc encodierte fast besser, zumindest ist es deutlich weniger Nerven raubend, wenn encodieren schnell geht, zumal das Ergebnis wirklich gut aussieht.

Voraussetzung für nvenc ist die passende Nvidia Grafik-Hardware und die passende Software. Dafür ist unter Kubuntu Linux der proprietäre nvidia-driver notwendig.

Nutzbar ist nvenc ab GK110 (Kepler), das wäre zum Beispiel eine NVIDIA GeForce GTX 780.

Damit das "video_convert_h264_nvenc" KDE Servicemenu funktioniert, ist für das smtube Icon das Paket smtube zuständig (es wird nur das Icon benutzt, kann man im Bedarfsfall selbst ändern):

Zum austüfteln der Bitrate Einstellung ist zudem das Paket mediainfo notwendig, ffprobe aus dem ffmpeg Paket reichte leider nicht aus wegen der Problemvideos:

FFmpeg muss installiert sein. Ab Focal Fossa werden die aktuellen FFmpeg Pakete mit external nv-codec-headers für NVENC Nvidia-GPU-Hardware beschleunigtes Video gebaut

So sieht das KDE Servicemenü dann aus:

video_convert_h264_nvenc.desktop

[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=video/3gpp;video/3gpp2;video/mp4;video/mpeg;video/ogg;video/x-matroska;video/x-mjpeg;video/wmp;video/wmv;video/x-msvideo;video/x-flic;video/x-flv;video/x-sgi-movie;video/quicktime
Actions=video_to_webm;video_alternative_bitrate_to_webm;video_to_mp4;video_alternative_bitrate_to_mp4;video_to_mkv;video_alternative_bitrate_to_mkv;video_to_avi;video_alternative_birate_to_avi;video_rotate_90_degrees_clockwise_mp4;video_rotate_90_degrees_clockwise_alternative_bitrate_mp4;video_rotate_90_degrees_counter_clockwise_mp4;video_rotate_90_degrees_counter_clockwise_alternative_bitrate_mp4;video_rotate_upside_down_mp4;video_rotate_upside_down_alternative_bitrate_mp4;video_mirror_vertically_mp4;video_mirror_vertically_alternative_bitrate_mp4;video_mirror_horizontally_mp4;video_mirror_horizontally_alternative_bitrate_mp4;
X-KDE-Submenu= Video convert ==>
X-KDE-Submenu[de]=Video umwandeln ==>
Icon=smtube

[Desktop Action video_to_webm]
Icon=smtube
Name=Video convert to webm
Name[de]=Video umwandeln zu webm
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/webm/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/webm/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/webm/I`" ] && notify-send -i media-playback-start.png "video to webm! :-)" "`echo "%f" | xargs basename` video to webm Running..." &&  yes | ffmpeg -hwaccel cuda -i "%f" -b:v "`mediainfo --Inform="Video;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" -pass 1 -an -f webm /dev/null && ffmpeg -hwaccel cuda -i "%f" -b:v "`mediainfo --Inform="Video;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" -pass 2 "`echo "%f" | sed -e s/[^.]*$/webm/I`"&& rm ffmpeg2pass-0.log && notify-send -i dialog-ok-apply.png "Ready! :-)" "video to webm: `echo "%f" | sed -e s/[^.]*$/webm/I | xargs basename` Ready!"


[Desktop Action video_alternative_bitrate_to_webm]
Icon=smtube
Name=Video convert with alternative bitrate to webm
Name[de]=Video konvertien mit alternative Bitrate zu webm
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/webm/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/webm/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/webm/I`" ] && notify-send -i media-playback-start.png "video to webm! :-)" "`echo "%f" | xargs basename` video to webm Running..." &&  yes | ffmpeg -hwaccel cuda -i "%f" -b:v "`mediainfo -vv "%f" | awk '/Overall bit rate/ {print $5$6}' | sed -e 's/kb\\/s//' -e 's/^\\(.*\\)/\\1K/'`" -pass 1 -an -f webm /dev/null && ffmpeg -hwaccel cuda -i "%f" -b:v "`mediainfo -vv "%f" | awk '/Overall bit rate/ {print $5$6}' | sed -e 's/kb\\/s//' -e 's/^\\(.*\\)/\\1K/'`" -pass 2 "`echo "%f" | sed -e s/[^.]*$/webm/I`"&& rm ffmpeg2pass-0.log && notify-send -i dialog-ok-apply.png "Ready! :-)" "video to webm: `echo "%f" | sed -e s/[^.]*$/webm/I | xargs basename` Ready!"


[Desktop Action video_to_mp4]
Icon=smtube
Name=Video convert to mp4
Name[de]=Video umwandeln zu mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/mp4/I`" ] && notify-send -i media-playback-start.png "video to mp4! :-)" "`echo "%f" | xargs basename` video to mp4 Running..." && yes | ffmpeg -hwaccel cuda -hwaccel_output_format cuda -i "%f" -c:v h264_nvenc -profile high -preset slow -b:v "`mediainfo --Inform="Video;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac -b:a "`mediainfo --Inform="Audio;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" "`echo "%f" | sed -e s/[^.]*$/mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "video to mp4: `echo "%f" | sed -e s/[^.]*$/mp4/I | xargs basename` Ready!"


[Desktop Action video_alternative_bitrate_to_mp4]
Icon=smtube
Name=Video convert with alternative bitrate to mp4
Name[de]=Video konvertien mit alternative Bitrate zu mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/mp4/I`" ] && notify-send -i media-playback-start.png "video to mp4! :-)" "`echo "%f" | xargs basename` video to mp4 Running..." && yes | ffmpeg -hwaccel cuda -hwaccel_output_format cuda -i "%f" -c:v h264_nvenc -profile high -preset slow -b:v "`mediainfo -vv "%f" | awk '/Overall bit rate/ {print $5$6}' | sed -e 's/kb\\/s//' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac "`echo "%f" | sed -e s/[^.]*$/mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "video to mp4: `echo "%f" | sed -e s/[^.]*$/mp4/I | xargs basename` Ready!"


[Desktop Action video_to_mkv]
Icon=smtube
Name=Video convert to mkv
Name[de]=Video umwandeln zu mkv
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/mkv/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/mkv/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/mkv/I`" ] && notify-send -i media-playback-start.png "video to mkv! :-)" "`echo "%f" | xargs basename` video to mkv Running..." && yes | ffmpeg -hwaccel cuda -hwaccel_output_format cuda -i "%f" -c:v h264_nvenc -profile high -preset slow -b:v "`mediainfo --Inform="Video;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac -b:a "`mediainfo --Inform="Audio;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" "`echo "%f" | sed -e s/[^.]*$/mkv/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "video to mkv: `echo "%f" | sed -e s/[^.]*$/mkv/I | xargs basename` Ready!"


[Desktop Action video_alternative_bitrate_to_mkv]
Icon=smtube
Name=Video convert with alternative bitrate to mkv
Name[de]=Video konvertien mit alternative Bitrate zu mkv
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/mkv/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/mkv/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/mkv/I`" ] && notify-send -i media-playback-start.png "video to mkv! :-)" "`echo "%f" | xargs basename` video to mkv Running..." && yes | ffmpeg -hwaccel cuda -hwaccel_output_format cuda -i "%f" -c:v h264_nvenc -profile high -preset slow -b:v "`mediainfo -vv "%f" | awk '/Overall bit rate/ {print $5$6}' | sed -e 's/kb\\/s//' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac "`echo "%f" | sed -e s/[^.]*$/mkv/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "video to mkv: `echo "%f" | sed -e s/[^.]*$/mkv/I | xargs basename` Ready!"


[Desktop Action video_to_avi]
Icon=smtube
Name=Video convert to avi
Name[de]=Video umwandeln zu avi
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/avi/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/avi/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/avi/I`" ] && notify-send -i media-playback-start.png "video to avi! :-)" "`echo "%f" | xargs basename` video to avi Running..." && yes | ffmpeg -hwaccel cuda -hwaccel_output_format cuda -i "%f" -c:v h264_nvenc -profile high -preset slow -b:v "`mediainfo --Inform="Video;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" -b:a "`mediainfo --Inform="Audio;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" "`echo "%f" | sed -e s/[^.]*$/avi/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "video to avi: `echo "%f" | sed -e s/[^.]*$/avi/I | xargs basename` Ready!"


[Desktop Action video_alternative_birate_to_avi]
Icon=smtube
Name=Video convert with alternative bitrate to avi
Name[de]=Video konvertien mit alternative Bitrate zu avi
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/avi/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/avi/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/avi/I`" ] && notify-send -i media-playback-start.png "video to avi! :-)" "`echo "%f" | xargs basename` video to avi Running..." && yes | ffmpeg -hwaccel cuda -hwaccel_output_format cuda -i "%f" -c:v h264_nvenc -profile high -preset slow -b:v  "`mediainfo -vv "%f" | awk '/Overall bit rate/ {print $5$6}' | sed -e 's/kb\\/s//' -e 's/^\\(.*\\)/\\1K/'`" "`echo "%f" | sed -e s/[^.]*$/avi/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "video to avi: `echo "%f" | sed -e s/[^.]*$/avi/I | xargs basename` Ready!"


[Desktop Action video_rotate_90_degrees_clockwise_mp4]
Icon=smtube
Name=Video Rotation 90_degrees clockwise mp4
Name[de]=Video Drehung 90 Grad im Uhrzeigersinn mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ] && notify-send -i media-playback-start.png "Rotates the Video orientation :-)" "`echo "%f" | xargs basename` mp4 turn Running..." && ffmpeg -hwaccel cuda -i "%f" -vf "transpose=1" -strict experimental -vcodec nvenc -preset slow -b:v "`mediainfo --Inform="Video;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac -b:a "`mediainfo --Inform="Audio;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "Rotated `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename` Ready!"


[Desktop Action video_rotate_90_degrees_clockwise_alternative_bitrate_mp4]
Icon=smtube
Name=Video Rotation 90_degrees clockwise with alternative bitrate mp4
Name[de]=Video Drehung 90 Grad im Uhrzeigersinn mit alternative Bitrate mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ] && notify-send -i media-playback-start.png "Rotates the Video orientation :-)" "`echo "%f" | xargs basename` mp4 turn Running..." && ffmpeg -hwaccel cuda -i "%f" -vf "transpose=1" -strict experimental -vcodec nvenc -preset slow -b:v "`mediainfo -vv "%f" | awk '/Overall bit rate/ {print $5$6}' | sed -e 's/kb\\/s//' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "Rotated `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename` Ready!"


[Desktop Action video_rotate_90_degrees_counter_clockwise_mp4]
Icon=smtube
Name=Video Rotation 90_degrees counter clockwise mp4
Name[de]=Video Drehung 90 Grad gegen Uhrzeigersinn mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ] && notify-send -i media-playback-start.png "Rotates the Video orientation :-)" "`echo "%f" | xargs basename` mp4 turn Running..." && ffmpeg -hwaccel cuda -i "%f" -vf "transpose=2" -strict experimental -vcodec nvenc -preset slow -b:v "`mediainfo --Inform="Video;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac -b:a "`mediainfo --Inform="Audio;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "Rotated `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename` Ready!"


[Desktop Action video_rotate_90_degrees_counter_clockwise_alternative_bitrate_mp4]
Icon=smtube
Name=Video Rotation 90_degrees counter clockwise with alternative bitrate mp4
Name[de]=Video Drehung 90 Grad gegen Uhrzeigersinn mit alternative Bitrate mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ] && notify-send -i media-playback-start.png "Rotates the Video orientation :-)" "`echo "%f" | xargs basename` mp4 turn Running..." && ffmpeg -hwaccel cuda -i "%f" -vf "transpose=2" -strict experimental -vcodec nvenc -preset slow -b:v "`mediainfo -vv "%f" | awk '/Overall bit rate/ {print $5$6}' | sed -e 's/kb\\/s//' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "Rotated `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename` Ready!"


[Desktop Action video_rotate_upside_down_mp4]
Icon=smtube
Name=Video Rotation rotation upside down mp4
Name[de]=Video Drehung kopfüber mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ] && notify-send -i media-playback-start.png "Rotates the Video orientation :-)" "`echo "%f" | xargs basename` mp4 turn Running..." && ffmpeg -hwaccel cuda -i "%f" -vf "transpose=2,transpose=2" -strict experimental -vcodec nvenc -preset slow -b:v "`mediainfo --Inform="Video;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac -b:a "`mediainfo --Inform="Audio;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "Rotated `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename` Ready!"


[Desktop Action video_rotate_upside_down_alternative_bitrate_mp4]
Icon=smtube
Name=Video Rotation rotation upside down with alternative bitrate mp4
Name[de]=Video Drehung kopfüber mit alternative Bitrate mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ] && notify-send -i media-playback-start.png "Rotates the Video orientation :-)" "`echo "%f" | xargs basename` mp4 turn Running..." && ffmpeg -hwaccel cuda -i "%f" -vf "transpose=2,transpose=2" -strict experimental -vcodec nvenc -preset slow -b:v "`mediainfo -vv "%f" | awk '/Overall bit rate/ {print $5$6}' | sed -e 's/kb\\/s//' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "Rotated `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename` Ready!"


[Desktop Action video_mirror_vertically_mp4]
Icon=smtube
Name=Video mirror_vertically mp4
Name[de]=Video spiegeln vertikal mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ] && notify-send -i media-playback-start.png "Rotates the Video orientation :-)" "`echo "%f" | xargs basename` mp4 turn Running..." && ffmpeg -hwaccel cuda -i "%f" -vf "vflip" -strict experimental -vcodec nvenc -preset slow -b:v "`mediainfo --Inform="Video;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac -b:a "`mediainfo --Inform="Audio;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "Rotated `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename` Ready!"


[Desktop Action video_mirror_vertically_alternative_bitrate_mp4]
Icon=smtube
Name=Video mirror_vertically with alternative bitrate mp4
Name[de]=Video spiegeln vertikal mit alternative Bitrate mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ] && notify-send -i media-playback-start.png "Rotates the Video orientation :-)" "`echo "%f" | xargs basename` mp4 turn Running..." && ffmpeg -hwaccel cuda -i "%f" -vf "vflip" -strict experimental -vcodec nvenc -preset slow -b:v "`mediainfo -vv "%f" | awk '/Overall bit rate/ {print $5$6}' | sed -e 's/kb\\/s//' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "Rotated `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename` Ready!"


[Desktop Action video_mirror_horizontally_mp4]
Icon=smtube
Name=Video mirror horizontally mp4
Name[de]=Video spiegeln horizontal mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ] && notify-send -i media-playback-start.png "Rotates the Video orientation :-)" "`echo "%f" | xargs basename` mp4 turn Running..." && ffmpeg -hwaccel cuda -i "%f" -vf "hflip" -strict experimental -vcodec nvenc -preset slow -b:v "`mediainfo --Inform="Video;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac -b:a "`mediainfo --Inform="Audio;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "Rotated `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename` Ready!"


[Desktop Action video_mirror_horizontally_alternative_bitrate_mp4]
Icon=smtube
Name=Video mirror horizontally with alternative bitrate mp4
Name[de]=Video spiegeln horizontal mit alternative Bitrate mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ] && notify-send -i media-playback-start.png "Rotates the Video orientation :-)" "`echo "%f" | xargs basename` mp4 turn Running..." && ffmpeg -hwaccel cuda -i "%f" -vf "hflip" -strict experimental -vcodec nvenc -preset slow -b:v "`mediainfo -vv "%f" | awk '/Overall bit rate/ {print $5$6}' | sed -e 's/kb\\/s//' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "Rotated `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename` Ready!"

Dieser Inhalt kommt dann in eine Datei

/home/USERNAME/.local/share/kservices5/ServiceMenus/video_convert_h264_nvenc.desktop

Wobei USERNAME der eigene jeweilige Username sein muss. Anschließend noch im Terminal (KDE Konsole) laufen lassen:

kbuildsycoca5 --noincremental

Das liest nicht nur die *.desktop Dateien neu ein, es überprüft auch auf grobe Syntax Fehler.

Als Testvideos habe ich verwendet:

Von dieser Webseite:

Und von Youtube dieses:

youtube-dl macht es möglich:

youtube-dl iSW-hDVY24c

Im Servicemenu sind alternative Bitrate Möglichhkeiten vorhanden. Das hat sich ergeben, weil sich die Bitrate nicht unbedingt so auslesen lässt wie es am einfachsten wäre. Würde man stumpf wie etwa in diesem KDE Servicemenü umwandeln:

Damit würde das umwandeln nicht nur lange dauern, sondern es gibt auch kein gutes Video, es sieht dann eher nach unschönem Klötzenballet aus, anstatt nach Wellen und Wasser wie im sample_1280x720_surfing_with_audio.3gp gezeigt. Die einfache Befehlzeile macht nur:

ffmpeg -i Ausgangsvideo -y Ergebnisvideo.avi

Was dann leider zu einem sehr hässlichem Klötzenballet führt. Wäre ja schön, wenn es so einfach gewesen wäre, aber ist es leider nicht. Zumindest dann nicht, wenn man gute Qualtiät und gute Geschwindigkeit beim umwandeln oder rotieren haben will. webm kann übrigens meine alte Hardware nur bedingt beschleunigen. Da dauert dann umwandeln vom ca. 3 Minuten Testvideo rund eine Dreiviertelstunde. nvenc schafft das in unter einer Minute in guter Qualtität, bei unterstüzten Formaten und Hardware.

Nachtrag: für die Benachrichtigungen braucht es auch noch das Paket libnotify-bin, hoffe, dass es per default bei Kubuntu dabei ist, falls nicht:

trollsportverein

(Themenstarter)
Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 2627

Änderungen für FFmpeg 4.4.1.

[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=video/3gpp;video/3gpp2;video/mp4;video/mpeg;video/ogg;video/x-matroska;video/x-mjpeg;video/wmp;video/wmv;video/x-msvideo;video/x-flic;video/x-flv;video/x-sgi-movie;video/quicktime
Actions=video_to_webm;video_alternative_bitrate_to_webm;video_to_mp4;video_alternative_bitrate_to_mp4;video_to_mkv;video_alternative_bitrate_to_mkv;video_to_avi;video_alternative_birate_to_avi;video_rotate_90_degrees_clockwise_mp4;video_rotate_90_degrees_clockwise_alternative_bitrate_mp4;video_rotate_90_degrees_counter_clockwise_mp4;video_rotate_90_degrees_counter_clockwise_alternative_bitrate_mp4;video_rotate_upside_down_mp4;video_rotate_upside_down_alternative_bitrate_mp4;video_mirror_vertically_mp4;video_mirror_vertically_alternative_bitrate_mp4;video_mirror_horizontally_mp4;video_mirror_horizontally_alternative_bitrate_mp4;
X-KDE-Submenu= Video convert ==>
X-KDE-Submenu[de]=Video umwandeln ==>
Icon=smtube

[Desktop Action video_to_webm]
Icon=smtube
Name=Video convert to webm
Name[de]=Video umwandeln zu webm
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/webm/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/webm/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/webm/I`" ] && notify-send -i media-playback-start.png "video to webm! :-)" "`echo "%f" | xargs basename` video to webm Running..." &&  yes | ffmpeg -hwaccel cuda -i "%f" -b:v "`mediainfo --Inform="Video;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" -pass 1 -an -f webm /dev/null && yes | ffmpeg -hwaccel cuda -i "%f" -b:v "`mediainfo --Inform="Video;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" -pass 2 "`echo "%f" | sed -e s/[^.]*$/webm/I`"&& rm ffmpeg2pass-0.log && notify-send -i dialog-ok-apply.png "Ready! :-)" "video to webm: `echo "%f" | sed -e s/[^.]*$/webm/I | xargs basename` Ready!"


[Desktop Action video_alternative_bitrate_to_webm]
Icon=smtube
Name=Video convert with alternative bitrate to webm
Name[de]=Video konvertien mit alternative Bitrate zu webm
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/webm/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/webm/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/webm/I`" ] && notify-send -i media-playback-start.png "video to webm! :-)" "`echo "%f" | xargs basename` video to webm Running..." &&  yes | ffmpeg -hwaccel cuda -i "%f" -b:v "`mediainfo -vv "%f" | awk '/Overall bit rate/ {print $5$6}' | grep ^[^:] | sed -e 's/kb\\/s//' -e 's/^\\(.*\\)/\\1K/'`" -pass 1 -an -f webm /dev/null && yes | ffmpeg -hwaccel cuda -i "%f" -b:v "`mediainfo -vv "%f" | awk '/Overall bit rate/ {print $5$6}' | grep ^[^:] | sed -e 's/kb\\/s//' -e 's/^\\(.*\\)/\\1K/'`" -pass 2 "`echo "%f" | sed -e s/[^.]*$/webm/I`"&& rm ffmpeg2pass-0.log && notify-send -i dialog-ok-apply.png "Ready! :-)" "video to webm: `echo "%f" | sed -e s/[^.]*$/webm/I | xargs basename` Ready!"


[Desktop Action video_to_mp4]
Icon=smtube
Name=Video convert to mp4
Name[de]=Video umwandeln zu mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/mp4/I`" ] && notify-send -i media-playback-start.png "video to mp4! :-)" "`echo "%f" | xargs basename` video to mp4 Running..." && yes | ffmpeg -hwaccel cuda -hwaccel_output_format cuda -i "%f" -c:v h264_nvenc -profile high -preset slow -b:v "`mediainfo --Inform="Video;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac -b:a "`mediainfo --Inform="Audio;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" "`echo "%f" | sed -e s/[^.]*$/mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "video to mp4: `echo "%f" | sed -e s/[^.]*$/mp4/I | xargs basename` Ready!"


[Desktop Action video_alternative_bitrate_to_mp4]
Icon=smtube
Name=Video convert with alternative bitrate to mp4
Name[de]=Video konvertien mit alternative Bitrate zu mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/mp4/I`" ] && notify-send -i media-playback-start.png "video to mp4! :-)" "`echo "%f" | xargs basename` video to mp4 Running..." && yes | ffmpeg -hwaccel cuda -hwaccel_output_format cuda -i "%f" -c:v h264_nvenc -profile high -preset slow -b:v "`mediainfo -vv "%f" | awk '/Overall bit rate/ {print $5$6}' | grep ^[^:] | sed -e 's/kb\\/s//' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac "`echo "%f" | sed -e s/[^.]*$/mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "video to mp4: `echo "%f" | sed -e s/[^.]*$/mp4/I | xargs basename` Ready!"


[Desktop Action video_to_mkv]
Icon=smtube
Name=Video convert to mkv
Name[de]=Video umwandeln zu mkv
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/mkv/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/mkv/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/mkv/I`" ] && notify-send -i media-playback-start.png "video to mkv! :-)" "`echo "%f" | xargs basename` video to mkv Running..." && yes | ffmpeg -hwaccel cuda -hwaccel_output_format cuda -i "%f" -c:v h264_nvenc -profile high -preset slow -b:v "`mediainfo --Inform="Video;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac -b:a "`mediainfo --Inform="Audio;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" "`echo "%f" | sed -e s/[^.]*$/mkv/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "video to mkv: `echo "%f" | sed -e s/[^.]*$/mkv/I | xargs basename` Ready!"


[Desktop Action video_alternative_bitrate_to_mkv]
Icon=smtube
Name=Video convert with alternative bitrate to mkv
Name[de]=Video konvertien mit alternative Bitrate zu mkv
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/mkv/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/mkv/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/mkv/I`" ] && notify-send -i media-playback-start.png "video to mkv! :-)" "`echo "%f" | xargs basename` video to mkv Running..." && yes | ffmpeg -hwaccel cuda -hwaccel_output_format cuda -i "%f" -c:v h264_nvenc -profile high -preset slow -b:v "`mediainfo -vv "%f" | awk '/Overall bit rate/ {print $5$6}' | grep ^[^:] | sed -e 's/kb\\/s//' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac "`echo "%f" | sed -e s/[^.]*$/mkv/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "video to mkv: `echo "%f" | sed -e s/[^.]*$/mkv/I | xargs basename` Ready!"


[Desktop Action video_to_avi]
Icon=smtube
Name=Video convert to avi
Name[de]=Video umwandeln zu avi
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/avi/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/avi/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/avi/I`" ] && notify-send -i media-playback-start.png "video to avi! :-)" "`echo "%f" | xargs basename` video to avi Running..." && yes | ffmpeg -hwaccel cuda -hwaccel_output_format cuda -i "%f" -c:v h264_nvenc -profile high -preset slow -b:v "`mediainfo --Inform="Video;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" -b:a "`mediainfo --Inform="Audio;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" "`echo "%f" | sed -e s/[^.]*$/avi/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "video to avi: `echo "%f" | sed -e s/[^.]*$/avi/I | xargs basename` Ready!"


[Desktop Action video_alternative_birate_to_avi]
Icon=smtube
Name=Video convert with alternative bitrate to avi
Name[de]=Video konvertien mit alternative Bitrate zu avi
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/avi/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/avi/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/avi/I`" ] && notify-send -i media-playback-start.png "video to avi! :-)" "`echo "%f" | xargs basename` video to avi Running..." && yes | ffmpeg -hwaccel cuda -hwaccel_output_format cuda -i "%f" -c:v h264_nvenc -profile high -preset slow -b:v  "`mediainfo -vv "%f" | awk '/Overall bit rate/ {print $5$6}' | grep ^[^:] | sed -e 's/kb\\/s//' -e 's/^\\(.*\\)/\\1K/'`" "`echo "%f" | sed -e s/[^.]*$/avi/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "video to avi: `echo "%f" | sed -e s/[^.]*$/avi/I | xargs basename` Ready!"


[Desktop Action video_rotate_90_degrees_clockwise_mp4]
Icon=smtube
Name=Video Rotation 90_degrees clockwise mp4
Name[de]=Video Drehung 90 Grad im Uhrzeigersinn mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ] && notify-send -i media-playback-start.png "Rotates the Video orientation :-)" "`echo "%f" | xargs basename` mp4 turn Running..." && ffmpeg -hwaccel cuda -i "%f" -vf "transpose=1" -strict experimental -vcodec nvenc -preset slow -b:v "`mediainfo --Inform="Video;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac -b:a "`mediainfo --Inform="Audio;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "Rotated `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename` Ready!"


[Desktop Action video_rotate_90_degrees_clockwise_alternative_bitrate_mp4]
Icon=smtube
Name=Video Rotation 90_degrees clockwise with alternative bitrate mp4
Name[de]=Video Drehung 90 Grad im Uhrzeigersinn mit alternative Bitrate mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ] && notify-send -i media-playback-start.png "Rotates the Video orientation :-)" "`echo "%f" | xargs basename` mp4 turn Running..." && ffmpeg -hwaccel cuda -i "%f" -vf "transpose=1" -strict experimental -vcodec nvenc -preset slow -b:v "`mediainfo -vv "%f" | awk '/Overall bit rate/ {print $5$6}' | grep ^[^:] | sed -e 's/kb\\/s//' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "Rotated `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename` Ready!"


[Desktop Action video_rotate_90_degrees_counter_clockwise_mp4]
Icon=smtube
Name=Video Rotation 90_degrees counter clockwise mp4
Name[de]=Video Drehung 90 Grad gegen Uhrzeigersinn mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ] && notify-send -i media-playback-start.png "Rotates the Video orientation :-)" "`echo "%f" | xargs basename` mp4 turn Running..." && ffmpeg -hwaccel cuda -i "%f" -vf "transpose=2" -strict experimental -vcodec nvenc -preset slow -b:v "`mediainfo --Inform="Video;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac -b:a "`mediainfo --Inform="Audio;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "Rotated `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename` Ready!"


[Desktop Action video_rotate_90_degrees_counter_clockwise_alternative_bitrate_mp4]
Icon=smtube
Name=Video Rotation 90_degrees counter clockwise with alternative bitrate mp4
Name[de]=Video Drehung 90 Grad gegen Uhrzeigersinn mit alternative Bitrate mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ] && notify-send -i media-playback-start.png "Rotates the Video orientation :-)" "`echo "%f" | xargs basename` mp4 turn Running..." && ffmpeg -hwaccel cuda -i "%f" -vf "transpose=2" -strict experimental -vcodec nvenc -preset slow -b:v "`mediainfo -vv "%f" | awk '/Overall bit rate/ {print $5$6}' | grep ^[^:] | sed -e 's/kb\\/s//' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "Rotated `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename` Ready!"


[Desktop Action video_rotate_upside_down_mp4]
Icon=smtube
Name=Video Rotation rotation upside down mp4
Name[de]=Video Drehung kopfüber mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ] && notify-send -i media-playback-start.png "Rotates the Video orientation :-)" "`echo "%f" | xargs basename` mp4 turn Running..." && ffmpeg -hwaccel cuda -i "%f" -vf "transpose=2,transpose=2" -strict experimental -vcodec nvenc -preset slow -b:v "`mediainfo --Inform="Video;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac -b:a "`mediainfo --Inform="Audio;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "Rotated `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename` Ready!"


[Desktop Action video_rotate_upside_down_alternative_bitrate_mp4]
Icon=smtube
Name=Video Rotation rotation upside down with alternative bitrate mp4
Name[de]=Video Drehung kopfüber mit alternative Bitrate mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ] && notify-send -i media-playback-start.png "Rotates the Video orientation :-)" "`echo "%f" | xargs basename` mp4 turn Running..." && ffmpeg -hwaccel cuda -i "%f" -vf "transpose=2,transpose=2" -strict experimental -vcodec nvenc -preset slow -b:v "`mediainfo -vv "%f" | awk '/Overall bit rate/ {print $5$6}' | grep ^[^:] | sed -e 's/kb\\/s//' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "Rotated `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename` Ready!"


[Desktop Action video_mirror_vertically_mp4]
Icon=smtube
Name=Video mirror_vertically mp4
Name[de]=Video spiegeln vertikal mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ] && notify-send -i media-playback-start.png "Rotates the Video orientation :-)" "`echo "%f" | xargs basename` mp4 turn Running..." && ffmpeg -hwaccel cuda -i "%f" -vf "vflip" -strict experimental -vcodec nvenc -preset slow -b:v "`mediainfo --Inform="Video;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac -b:a "`mediainfo --Inform="Audio;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "Rotated `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename` Ready!"


[Desktop Action video_mirror_vertically_alternative_bitrate_mp4]
Icon=smtube
Name=Video mirror_vertically with alternative bitrate mp4
Name[de]=Video spiegeln vertikal mit alternative Bitrate mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ] && notify-send -i media-playback-start.png "Rotates the Video orientation :-)" "`echo "%f" | xargs basename` mp4 turn Running..." && ffmpeg -hwaccel cuda -i "%f" -vf "vflip" -strict experimental -vcodec nvenc -preset slow -b:v "`mediainfo -vv "%f" | awk '/Overall bit rate/ {print $5$6}' | grep ^[^:] | sed -e 's/kb\\/s//' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "Rotated `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename` Ready!"


[Desktop Action video_mirror_horizontally_mp4]
Icon=smtube
Name=Video mirror horizontally mp4
Name[de]=Video spiegeln horizontal mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ] && notify-send -i media-playback-start.png "Rotates the Video orientation :-)" "`echo "%f" | xargs basename` mp4 turn Running..." && ffmpeg -hwaccel cuda -i "%f" -vf "hflip" -strict experimental -vcodec nvenc -preset slow -b:v "`mediainfo --Inform="Video;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac -b:a "`mediainfo --Inform="Audio;%%BitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "Rotated `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename` Ready!"


[Desktop Action video_mirror_horizontally_alternative_bitrate_mp4]
Icon=smtube
Name=Video mirror horizontally with alternative bitrate mp4
Name[de]=Video spiegeln horizontal mit alternative Bitrate mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ] && notify-send -i media-playback-start.png "Rotates the Video orientation :-)" "`echo "%f" | xargs basename` mp4 turn Running..." && ffmpeg -hwaccel cuda -i "%f" -vf "hflip" -strict experimental -vcodec nvenc -preset slow -b:v "`mediainfo -vv "%f" | awk '/Overall bit rate/ {print $5$6}' | grep ^[^:] | sed -e 's/kb\\/s//' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "Rotated `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename` Ready!"

Der neue FFmpeg macht beim pass 2 noch eine Abfrage, die mit yes beantwortet werden muss, das ist nun eingebaut. Auch musste noch ein Teil der mediainfo Ausgabe stärker gefiltert werden.

trollsportverein

(Themenstarter)
Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 2627

Noch weiter getüftelt. Nun wird beim auslesen der Bitrate automatisch umgeschaltet, das Menu ist nun aufgeräumter und es ist noch umwaneln in X.265.mkv hinzugekommen. VP9 und X.265 jweils im 2pass kann aber meine alte Hardware nicht beschleunigen. Das umwandeln ist damit auf meiner Maschine eine arg langwierige Quälerei. Dafür aber geht das umwandeln in h264 mit dem nvenc noch schneller. Das sample_1280x720_surfing_with_audio.3gp braucht auf meiner Maschine mit 14 Jahre altem Mainboard und CPU nur noch 13 Sekunden bis es als mp4 fertig ist.

Hier der neue Inhalt für /home/USERNAME/.local/share/kservices5/ServiceMenus/video_convert_h264_nvenc.desktop:

[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=video/3gpp;video/3gpp2;video/mp4;video/mpeg;video/ogg;video/x-matroska;video/x-mjpeg;video/wmp;video/wmv;video/x-msvideo;video/x-flic;video/x-flv;video/x-sgi-movie;video/quicktime;video/webm;
Actions=01_video_to_mp4;02_video_to_mkv;03_video_to_avi;04_video_to_mov;05_video_to_webm;06_video_to_x265_mkv;07_video_rotate_upside_down_mp4;08_video_rotate_90_degrees_clockwise_mp4;09_video_rotate_90_degrees_counter_clockwise_mp4;10_video_mirror_vertically_mp4;11_video_mirror_horizontally_mp4;
X-KDE-Submenu= Video convert ==>
X-KDE-Submenu[de]=Video umwandeln ==>
Icon=smtube

[Desktop Action 01_video_to_mp4]
Icon=smtube
Name=Video convert to mp4
Name[de]=Video umwandeln zu mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/mp4/I`" ] && notify-send -i media-playback-start.png "video to mp4! :-)" "`echo "%f" | xargs basename` video to mp4 Running..." && yes | ffmpeg -hide_banner -hwaccel cuda -hwaccel_output_format cuda -i "%f" -c:v h264_nvenc -profile high -preset slow -b:v "`mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" | [ -f '' ] && mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" || mediainfo --ParseSpeed=1 --Inform="General;%%OverallBitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac  "`echo "%f" | sed -e s/[^.]*$/mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "video to mp4: `echo "%f" | sed -e s/[^.]*$/mp4/I | xargs basename` Ready!"

[Desktop Action 02_video_to_mkv]
Icon=smtube
Name=Video convert to mkv
Name[de]=Video umwandeln zu mkv
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/mkv/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/mkv/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/mkv/I`" ] && notify-send -i media-playback-start.png "video to mkv! :-)" "`echo "%f" | xargs basename` video to mkv Running..." && yes | ffmpeg -hide_banner -hwaccel cuda -hwaccel_output_format cuda -i "%f" -c:v h264_nvenc -profile high -preset slow -b:v "`mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" | [ -f '' ] && mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" || mediainfo --ParseSpeed=1 --Inform="General;%%OverallBitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac  "`echo "%f" | sed -e s/[^.]*$/mkv/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "video to mkv: `echo "%f" | sed -e s/[^.]*$/mkv/I | xargs basename` Ready!"

[Desktop Action 03_video_to_avi]
Icon=smtube
Name=Video convert to avi
Name[de]=Video umwandeln zu avi
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/avi/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/avi/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/avi/I`" ] && notify-send -i media-playback-start.png "video to avi! :-)" "`echo "%f" | xargs basename` video to avi Running..." && yes | ffmpeg  -hide_banner -hwaccel cuda -hwaccel_output_format cuda -i "%f" -c:v h264_nvenc -profile high -preset slow -b:v "`mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" | [ -f '' ] && mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" || mediainfo --ParseSpeed=1 --Inform="General;%%OverallBitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac "`echo "%f" | sed -e s/[^.]*$/avi/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "video to avi: `echo "%f" | sed -e s/[^.]*$/avi/I | xargs basename` Ready!"

[Desktop Action 04_video_to_mov]
Icon=smtube
Name=Video convert to mov
Name[de]=Video umwandeln zu mov
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/mov/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/mov/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/mov/I`" ] && notify-send -i media-playback-start.png "video to mov! :-)" "`echo "%f" | xargs basename` video to mov Running..." && yes | ffmpeg  -hide_banner -hwaccel cuda -hwaccel_output_format cuda -i "%f" -c:v h264_nvenc -profile high -preset slow -b:v "`mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" | [ -f '' ] && mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" || mediainfo --ParseSpeed=1 --Inform="General;%%OverallBitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac "`echo "%f" | sed -e s/[^.]*$/mov/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "video to mov: `echo "%f" | sed -e s/[^.]*$/mov/I | xargs basename` Ready!"

[Desktop Action 05_video_to_webm]
Icon=smtube
Name=Video convert to webm
Name[de]=Video umwandeln zu webm
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/webm/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/webm/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/webm/I`" ] && notify-send -i media-playback-start.png "video to webm! :-)" "`echo "%f" | xargs basename` video to webm Running..." &&  yes | ffmpeg -hide_banner -threads `nproc` -hwaccel cuda  -i "%f" -c:v libvpx-vp9  -b:v "`mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" | [ -f '' ] && mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" || mediainfo --ParseSpeed=1 --Inform="General;%%OverallBitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" -pass 1 -an -passlogfile "%f" -f webm /dev/null && yes | ffmpeg -hide_banner -threads `nproc` -hwaccel cuda -i "%f" -c:v libvpx-vp9 -b:v "`mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" | [ -f '' ] && mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" || mediainfo --ParseSpeed=1 --Inform="General;%%OverallBitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" -pass 2 -passlogfile "%f" "`echo "%f" | sed -e s/[^.]*$/webm/I`" && rm "%f"-0.log && notify-send -i dialog-ok-apply.png "Ready! :-)" "video to webm: `echo "%f" | sed -e s/[^.]*$/webm/I | xargs basename` Ready!"

[Desktop Action 06_video_to_x265_mkv]
Icon=smtube
Name=Video convert to x265 mkv
Name[de]=Video umwandeln zu x265 mkv
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/mkv/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/mkv/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/mkv/I`" ] && notify-send -i media-playback-start.png "video to mkv! :-)" "`echo "%f" | xargs basename` video to mkv Running..." &&  yes | ffmpeg -hide_banner -threads `nproc` -hwaccel cuda  -i "%f" -c:v libx265  -tag:v hvc1 -b:v "`mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" | [ -f '' ] && mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" || mediainfo --ParseSpeed=1 --Inform="General;%%OverallBitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" -x265-params pass=1 -an -f null /dev/null && yes | ffmpeg -hide_banner -threads `nproc` -hwaccel cuda -i "%f" -c:v libx265 -tag:v hvc1 -b:v "`mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" | [ -f '' ] && mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" || mediainfo --ParseSpeed=1 --Inform="General;%%OverallBitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" -x265-params pass=2 -c:a aac "`echo "%f" | sed -e s/[^.]*$/mkv/I`" && rm x265_2pass.log x265_2pass.log.cutree && notify-send -i dialog-ok-apply.png "Ready! :-)" "video to mkv: `echo "%f" | sed -e s/[^.]*$/mkv/I | xargs basename` Ready!"

[Desktop Action 07_video_rotate_upside_down_mp4]
Icon=smtube
Name=Video Rotation rotation upside down mp4
Name[de]=Video Drehung kopfüber mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ] && notify-send -i media-playback-start.png "Rotates the Video orientation :-)" "`echo "%f" | xargs basename` mp4 turn Running..." && ffmpeg -hwaccel cuda -i "%f" -vf "transpose=2,transpose=2" -strict experimental -vcodec nvenc -preset slow -b:v "`mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" | [ -f '' ] && mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" || mediainfo --ParseSpeed=1 --Inform="General;%%OverallBitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "Rotated `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename` Ready!"

[Desktop Action 08_video_rotate_90_degrees_clockwise_mp4]
Icon=smtube
Name=Video Rotation 90_degrees clockwise mp4
Name[de]=Video Drehung 90 Grad im Uhrzeigersinn mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ] && notify-send -i media-playback-start.png "Rotates the Video orientation :-)" "`echo "%f" | xargs basename` mp4 turn Running..." && ffmpeg -hwaccel cuda -i "%f" -vf "transpose=1" -strict experimental -vcodec nvenc -preset slow -b:v "`mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" | [ -f '' ] && mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" || mediainfo --ParseSpeed=1 --Inform="General;%%OverallBitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "Rotated `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename` Ready!"

[Desktop Action 09_video_rotate_90_degrees_counter_clockwise_mp4]
Icon=smtube
Name=Video Rotation 90_degrees counter clockwise mp4
Name[de]=Video Drehung 90 Grad gegen Uhrzeigersinn mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ] && notify-send -i media-playback-start.png "Rotates the Video orientation :-)" "`echo "%f" | xargs basename` mp4 turn Running..." && ffmpeg -hwaccel cuda -i "%f" -vf "transpose=2" -strict experimental -vcodec nvenc -preset slow -b:v "`mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" | [ -f '' ] && mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" || mediainfo --ParseSpeed=1 --Inform="General;%%OverallBitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac  "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "Rotated `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename` Ready!"

[Desktop Action 10_video_mirror_vertically_mp4]
Icon=smtube
Name=Video mirror_vertically mp4
Name[de]=Video spiegeln vertikal mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ] && notify-send -i media-playback-start.png "Rotates the Video orientation :-)" "`echo "%f" | xargs basename` mp4 turn Running..." && ffmpeg -hwaccel cuda -i "%f" -vf "vflip" -strict experimental -vcodec nvenc -preset slow -b:v "`mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" | [ -f '' ] && mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" || mediainfo --ParseSpeed=1 --Inform="General;%%OverallBitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "Rotated `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename` Ready!"

[Desktop Action 11_video_mirror_horizontally_mp4]
Icon=smtube
Name=Video mirror horizontally mp4
Name[de]=Video spiegeln horizontal mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ] && notify-send -i media-playback-start.png "Rotates the Video orientation :-)" "`echo "%f" | xargs basename` mp4 turn Running..." && ffmpeg -hwaccel cuda -i "%f" -vf "hflip" -strict experimental -vcodec nvenc -preset slow -b:v "`mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" | [ -f '' ] && mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" || mediainfo --ParseSpeed=1 --Inform="General;%%OverallBitRate%%" "%f" | sed -e 's/\\(.*\\)...$/\\1/' -e 's/^\\(.*\\)/\\1K/'`" -c:a aac "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "Rotated `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename` Ready!"

trollsportverein

(Themenstarter)
Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 2627

Angepasst an ffmpeg 7:5.1+git20220810-0ubuntu1~22.04.sav0 auf Kubuntu Jammy Jellyfish (22.04).

Hier der neue Inhalt für /home/USERNAME/.local/share/kservices5/ServiceMenus/video_convert_h264_nvenc.desktop:

[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=video/3gpp;video/3gpp2;video/mp4;video/mpeg;video/ogg;video/x-matroska;video/x-mjpeg;video/wmp;video/wmv;video/x-msvideo;video/x-flic;video/x-flv;video/x-sgi-movie;video/quicktime;video/webm;
Actions=01_video_to_mp4;02_video_to_mkv;03_video_to_avi;04_video_to_mov;05_video_to_webm;06_video_to_x265_mkv;07_video_rotate_upside_down_mp4;08_video_rotate_90_degrees_clockwise_mp4;09_video_rotate_90_degrees_counter_clockwise_mp4;10_video_mirror_vertically_mp4;11_video_mirror_horizontally_mp4;
X-KDE-Submenu= Video convert ==>
X-KDE-Submenu[de]=Video umwandeln ==>
Icon=smtube

[Desktop Action 01_video_to_mp4]
Icon=smtube
Name=Video convert to mp4
Name[de]=Video umwandeln zu mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/mp4/I`" ] && notify-send -i media-playback-start.png "video to mp4! :-)" "`echo "%f" | xargs basename` video to mp4 Running..." && yes | ffmpeg -y -hide_banner -hwaccel cuda -i "%f" -c:v h264_nvenc -profile:v:v:v high -preset slow -b:v "`mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" || mediainfo --ParseSpeed=1 --Inform="General;%%OverallBitRate%%" "%f"`" -c:a aac  "`echo "%f" | sed -e s/[^.]*$/mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "video to mp4: `echo "%f" | sed -e s/[^.]*$/mp4/I | xargs basename` Ready!"

[Desktop Action 02_video_to_mkv]
Icon=smtube
Name=Video convert to mkv
Name[de]=Video umwandeln zu mkv
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/mkv/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/mkv/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/mkv/I`" ] && notify-send -i media-playback-start.png "video to mkv! :-)" "`echo "%f" | xargs basename` video to mkv Running..." && yes | ffmpeg -y -hide_banner -hwaccel cuda -i "%f" -c:v h264_nvenc -profile:v:v high -preset slow -b:v "`mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" || mediainfo --ParseSpeed=1 --Inform="General;%%OverallBitRate%%" "%f"`" -c:a aac  "`echo "%f" | sed -e s/[^.]*$/mkv/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "video to mkv: `echo "%f" | sed -e s/[^.]*$/mkv/I | xargs basename` Ready!"

[Desktop Action 03_video_to_avi]
Icon=smtube
Name=Video convert to avi
Name[de]=Video umwandeln zu avi
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/avi/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/avi/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/avi/I`" ] && notify-send -i media-playback-start.png "video to avi! :-)" "`echo "%f" | xargs basename` video to avi Running..." && yes | ffmpeg -y  -hide_banner -hwaccel cuda -i "%f" -c:v h264_nvenc -profile:v:v high -preset slow -b:v "`mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" || mediainfo --ParseSpeed=1 --Inform="General;%%OverallBitRate%%" "%f"`" -c:a aac "`echo "%f" | sed -e s/[^.]*$/avi/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "video to avi: `echo "%f" | sed -e s/[^.]*$/avi/I | xargs basename` Ready!"

[Desktop Action 04_video_to_mov]
Icon=smtube
Name=Video convert to mov
Name[de]=Video umwandeln zu mov
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/mov/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/mov/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/mov/I`" ] && notify-send -i media-playback-start.png "video to mov! :-)" "`echo "%f" | xargs basename` video to mov Running..." && yes | ffmpeg -y  -hide_banner -hwaccel cuda -i "%f" -c:v h264_nvenc -profile:v high -preset slow -b:v "`mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" || mediainfo --ParseSpeed=1 --Inform="General;%%OverallBitRate%%" "%f"`" -c:a aac "`echo "%f" | sed -e s/[^.]*$/mov/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "video to mov: `echo "%f" | sed -e s/[^.]*$/mov/I | xargs basename` Ready!"

[Desktop Action 05_video_to_webm]
Icon=smtube
Name=Video convert to webm
Name[de]=Video umwandeln zu webm
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/webm/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/webm/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/webm/I`" ] && notify-send -i media-playback-start.png "video to webm! :-)" "`echo "%f" | xargs basename` video to webm Running..." &&  yes | ffmpeg -y -hide_banner -threads `nproc` -hwaccel cuda  -i "%f" -c:v libvpx-vp9  -b:v "`mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" || mediainfo --ParseSpeed=1 --Inform="General;%%OverallBitRate%%" "%f"`" -pass 1 -an -passlogfile "%f" -f webm /dev/null && yes | ffmpeg -y -hide_banner -threads `nproc` -hwaccel cuda -i "%f" -c:v libvpx-vp9 -b:v "`mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" || mediainfo --ParseSpeed=1 --Inform="General;%%OverallBitRate%%" "%f"`" -pass 2 -passlogfile "%f" "`echo "%f" | sed -e s/[^.]*$/webm/I`" && rm "%f"-0.log && notify-send -i dialog-ok-apply.png "Ready! :-)" "video to webm: `echo "%f" | sed -e s/[^.]*$/webm/I | xargs basename` Ready!"

[Desktop Action 06_video_to_x265_mkv]
Icon=smtube
Name=Video convert to x265 mkv
Name[de]=Video umwandeln zu x265 mkv
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/mkv/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/mkv/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/mkv/I`" ] && notify-send -i media-playback-start.png "video to mkv! :-)" "`echo "%f" | xargs basename` video to mkv Running..." &&  yes | ffmpeg -y -hide_banner -threads `nproc` -hwaccel cuda  -i "%f" -c:v libx265  -tag:v hvc1 -b:v "`mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" || mediainfo --ParseSpeed=1 --Inform="General;%%OverallBitRate%%" "%f"`" -x265-params pass=1 -an -f null /dev/null && yes | ffmpeg -y -hide_banner -threads `nproc` -hwaccel cuda -i "%f" -c:v libx265 -tag:v hvc1 -b:v "`mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" || mediainfo --ParseSpeed=1 --Inform="General;%%OverallBitRate%%" "%f"`" -x265-params pass=2 -c:a aac "`echo "%f" | sed -e s/[^.]*$/mkv/I`" && rm x265_2pass.log x265_2pass.log.cutree && notify-send -i dialog-ok-apply.png "Ready! :-)" "video to mkv: `echo "%f" | sed -e s/[^.]*$/mkv/I | xargs basename` Ready!"

[Desktop Action 07_video_rotate_upside_down_mp4]
Icon=smtube
Name=Video Rotation rotation upside down mp4
Name[de]=Video Drehung kopfüber mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ] && notify-send -i media-playback-start.png "Rotates the Video orientation :-)" "`echo "%f" | xargs basename` mp4 turn Running..." && ffmpeg -y -hwaccel cuda -i "%f" -vf "transpose=2,transpose=2" -strict experimental -c:v h264_nvenc -profile:v:v:v high -preset slow -b:v "`mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" || mediainfo --ParseSpeed=1 --Inform="General;%%OverallBitRate%%" "%f"`" -c:a aac "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "Rotated `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename` Ready!"

[Desktop Action 08_video_rotate_90_degrees_clockwise_mp4]
Icon=smtube
Name=Video Rotation 90_degrees clockwise mp4
Name[de]=Video Drehung 90 Grad im Uhrzeigersinn mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ] && notify-send -i media-playback-start.png "Rotates the Video orientation :-)" "`echo "%f" | xargs basename` mp4 turn Running..." && ffmpeg -y -hwaccel cuda -i "%f" -vf "transpose=1" -strict experimental -c:v h264_nvenc -profile:v:v:v high -preset slow -b:v "`mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" || mediainfo --ParseSpeed=1 --Inform="General;%%OverallBitRate%%" "%f"`" -c:a aac "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "Rotated `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename` Ready!"

[Desktop Action 09_video_rotate_90_degrees_counter_clockwise_mp4]
Icon=smtube
Name=Video Rotation 90_degrees counter clockwise mp4
Name[de]=Video Drehung 90 Grad gegen Uhrzeigersinn mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ] && notify-send -i media-playback-start.png "Rotates the Video orientation :-)" "`echo "%f" | xargs basename` mp4 turn Running..." && ffmpeg -y -hwaccel cuda -i "%f" -vf "transpose=2" -strict experimental -c:v h264_nvenc -profile:v:v:v high -preset slow -b:v "`mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" || mediainfo --ParseSpeed=1 --Inform="General;%%OverallBitRate%%" "%f"`" -c:a aac  "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "Rotated `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename` Ready!"

[Desktop Action 10_video_mirror_vertically_mp4]
Icon=smtube
Name=Video mirror_vertically mp4
Name[de]=Video spiegeln vertikal mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ] && notify-send -i media-playback-start.png "Rotates the Video orientation :-)" "`echo "%f" | xargs basename` mp4 turn Running..." && ffmpeg -y -hwaccel cuda -i "%f" -vf "vflip" -strict experimental -c:v h264_nvenc -profile:v:v:v high -preset slow -b:v "`mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" || mediainfo --ParseSpeed=1 --Inform="General;%%OverallBitRate%%" "%f"`" -c:a aac "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "Rotated `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename` Ready!"

[Desktop Action 11_video_mirror_horizontally_mp4]
Icon=smtube
Name=Video mirror horizontally mp4
Name[de]=Video spiegeln horizontal mp4
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename`" ] && notify-send -i media-playback-start.png "Rotates the Video orientation :-)" "`echo "%f" | xargs basename` mp4 turn Running..." && ffmpeg -y -hwaccel cuda -i "%f" -vf "hflip" -strict experimental -c:v h264_nvenc -profile:v:v:v high -preset slow -b:v "`mediainfo --ParseSpeed=1 --Inform="Video;%%BitRate%%" "%f" || mediainfo --ParseSpeed=1 --Inform="General;%%OverallBitRate%%" "%f"`" -c:a aac "`echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I`" && notify-send -i dialog-ok-apply.png "Ready! :-)" "Rotated `echo "%f" | sed -e s/[^.]*$/_rotated.mp4/I | xargs basename` Ready!"

kunovwd

Anmeldungsdatum:
20. Mai 2010

Beiträge: 284

trollsportverein schrieb:

Angepasst an ffmpeg 7:5.1+git20220810-0ubuntu1~22.04.sav0 auf Kubuntu Jammy Jellyfish (22.04).

[...]

Funktioniert ebenfalls einwandfrei ☺ Merci.

Gruß, Ralf

kunovwd

Anmeldungsdatum:
20. Mai 2010

Beiträge: 284

trollsportverein schrieb:

Angepasst an ffmpeg 7:5.1+git20220810-0ubuntu1~22.04.sav0 auf Kubuntu Jammy Jellyfish (22.04).

Hier der neue Inhalt für /home/USERNAME/.local/share/kservices5/ServiceMenus/video_convert_h264_nvenc.desktop:

[...]

Ich muss gestehen, dass ich den ffmpeg-Aufruf nicht auf die Kette bekomme, weil mir der Aufruf in Deinem Script zu kryptisch ist. Kannst Du ihn mir bitte in der Form "ffmpeg [optionen] ..." verraten, damit ich das in einem Bash-Script einbauen kann? ☺
Soweit habe ich das rausgelesen, doch das ist ja nicht vollständig:

1
ffmpeg -y -hide_banner -hwaccel cuda -i "%f" -c:v h264_nvenc -profile:v:v:v high -preset slow -b:v 

Gruß, Ralf

trollsportverein

(Themenstarter)
Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 2627

Das hier sollte es für ein Script übersetzt sein:

ffmpeg -y -hide_banner -hwaccel cuda -i INPUTVIDEO -c:v h264_nvenc -profile:v:v:v high -preset slow -b:v "`mediainfo --ParseSpeed=1 --Inform="Video;%BitRate%" INPUTVIDEO || mediainfo --ParseSpeed=1 --Inform="General;%OverallBitRate%" INPUTVIDEO`" -c:a aac  "`echo INPUTVIDEO | sed -e s/[^.]*$/AUDGABEVIDEO-ENDUNG/I`"

kunovwd

Anmeldungsdatum:
20. Mai 2010

Beiträge: 284

trollsportverein schrieb:

Das hier sollte es für ein Script übersetzt sein:

ffmpeg -y -hide_banner -hwaccel cuda -i INPUTVIDEO -c:v h264_nvenc -profile:v:v:v high -preset slow -b:v "`mediainfo --ParseSpeed=1 --Inform="Video;%BitRate%" INPUTVIDEO || mediainfo --ParseSpeed=1 --Inform="General;%OverallBitRate%" INPUTVIDEO`" -c:a aac  "`echo INPUTVIDEO | sed -e s/[^.]*$/AUDGABEVIDEO-ENDUNG/I`"

Danke für die Mühe. Muss das hier nicht OUTPUTVIDEO heißen am Ende?

1
ffmpeg -y -hide_banner -hwaccel cuda -i INPUTVIDEO -c:v h264_nvenc -profile:v:v:v high -preset slow -b:v "`mediainfo --ParseSpeed=1 --Inform="Video;%BitRate%" INPUTVIDEO 

Oder anders gefragt, ersetze ich INPUTVIDEO mit "$f"?

1
2
3
4
5
6

for f in *.mp4
do
ffmpeg -y -hide_banner -hwaccel cuda -i INPUTVIDEO -c:v h264_nvenc -profile:v:v:v high -preset slow -b:v "`mediainfo --ParseSpeed=1 --Inform="Video;%BitRate%" INPUTVIDEO || mediainfo --ParseSpeed=1 --Inform="General;%OverallBitRate%" INPUTVIDEO`" -c:a aac  "`echo INPUTVIDEO | sed -e s/[^.]*$/AUDGABEVIDEO-ENDUNG/I`"

done

trollsportverein

(Themenstarter)
Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 2627

kunovwd schrieb:

trollsportverein schrieb:

Das hier sollte es für ein Script übersetzt sein:

ffmpeg -y -hide_banner -hwaccel cuda -i INPUTVIDEO -c:v h264_nvenc -profile:v:v:v high -preset slow -b:v "`mediainfo --ParseSpeed=1 --Inform="Video;%BitRate%" INPUTVIDEO || mediainfo --ParseSpeed=1 --Inform="General;%OverallBitRate%" INPUTVIDEO`" -c:a aac  "`echo INPUTVIDEO | sed -e s/[^.]*$/AUDGABEVIDEO-ENDUNG/I`"

Danke für die Mühe. Muss das hier nicht OUTPUTVIDEO heißen am Ende?

Das sed Konstrukt ändert nur die Dateiendung, so wird aus IRGENDWAS.mp4 zum Beispiel IRGENDWAS.mkv. Soll so wohl Inputvideo, als auch Outputvideo .mp4 als Dateiendung haben, dann müsste bei gleichlautender Endung etwas vorangestellt werden, damit nicht das Eingabevideo vom Ausgabevideo überschrieben wird. "%f" steht ja für den Namen vom Eingabevideo. Der muss im Desktop File für das Ausgabevideo umgeschrieben werden, was das sed Konstrukt macht, damit das Ausgabevideo nicht das Eingabevideo überschreibt.

kunovwd

Anmeldungsdatum:
20. Mai 2010

Beiträge: 284

trollsportverein schrieb:

trollsportverein schrieb:

Das sed Konstrukt ändert nur die Dateiendung, so wird aus IRGENDWAS.mp4 zum Beispiel IRGENDWAS.mkv. Soll so wohl Inputvideo, als auch Outputvideo .mp4 als Dateiendung haben, dann müsste bei gleichlautender Endung etwas vorangestellt werden, damit nicht das Eingabevideo vom Ausgabevideo überschrieben wird. "%f" steht ja für den Namen vom Eingabevideo. Der muss im Desktop File für das Ausgabevideo umgeschrieben werden, was das sed Konstrukt macht, damit das Ausgabevideo nicht das Eingabevideo überschreibt.

Danke für Deine Erklärungen.

Nachdem ich nun mein alte nvidia Karte rausgeschmissen habe kommt die Fehlermeldung:

1
2
3
4
[AVHWDeviceContext @ 0x563b20753540] Cannot load libcuda.so.1
[AVHWDeviceContext @ 0x563b20753540] Could not dynamically load CUDA
Device creation failed: -1313558101.
[hevc @ 0x563b2075d3c0] No device available for decoder: device type cuda needed for codec hevc.

Ist das auf ein Nvidia Konstrukt ausgelegt oder kann/muss ich irgendwas anderes jetzt nachinstallieren?

Gruß, Ralf

PS: finde im Netz gerade, dass dies wohl nicht logisch ist und wohl nicht geht:

1
CUDA ist eine NVIDIA Architektur für parallele Berechnungen auf Grafik- prozessoren. CUDA umfasst C und C++ Erweiterungen um Parallelität von Daten und Berechnungen zu formulieren (103 Cuda Cores). Vorausetzungen zur Benutzung sind eine NVIDIA GPU und eine Installation des CUDA Toolkits.

trollsportverein

(Themenstarter)
Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 2627

Ja, die Voraussetzungen für NVENC stehen ja auch oben besonders auffällig markiert. 😉

kunovwd

Anmeldungsdatum:
20. Mai 2010

Beiträge: 284

trollsportverein schrieb:

Ja, die Voraussetzungen für NVENC stehen ja auch oben besonders auffällig markiert. 😉

Ohhh... da würde ich die fast wieder einbauen wollen.... ☹

PS: Und weil ich das "fast" gestrichen habe, ist sie jetzt wieder drin. ☺
Habe noch ein Weilchen gefummelt und dann die Karte doch noch so ans Laufen bekommen, dass sie auch beim Boot die Monitore erkennt und somit funktionell für mich ist.

Jetzt kann ich wieder Deine coole Routinen nutzen 😀 👍

Gruß, Ralf

Antworten |