dran gemacht, einen Film via Terminal zu bearbeiten.
Hab so was noch nie gemacht. Mein Filmbearbeitung beschränkte sich bisher darauf,mit winff
ab und zu mal einen Film für das Handy aufzubereiten.
Leider konnte ich diese Tools nicht dazu bewegen meine Graka als Hardware zu benutzen.
Also habe ich gegoogelt und bin aus diese Seite gestoßen:
https://developer.nvidia.com/ffmpeg
Hab dann probiert und probiert und nach diversen Syntax - Meckereien folgenden Bandwurm erschaffen, der Beindruckendes leistet:
Code: Alles auswählen
$ ffmpeg -hwaccel cuvid -c:v h264_cuvid -i /media/HD753LJ/Import/Filme/Sully/Sully.mkv -vcodec hevc_nvenc -preset slow -cq 10 -g 150 Sully.mp4
Code: Alles auswählen
frame=137883 fps=164 q=14.0 Lsize= 1662363kB time=01:35:50.82 bitrate=2368.0kbits/s dup=5 drop=0 speed=6.85x
Ursprung (gekürzt):
Code: Alles auswählen
Complete name : /media/HD753LJ/Import/Filme/Sully/Sully.mkv
Format : Matroska
Format version : Version 4
File size : 7.65 GiB
Duration : 1 h 35 min
Overall bit rate : 11.4 Mb/s
Encoded date : UTC 2017-02-27 19:16:12
Writing application : mkvmerge v8.3.0 ('Over the Horizon') 64bit
Writing library : libebml v1.3.1 + libmatroska v1.4.2
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.1
Format settings : CABAC / 5 Ref Frames
Format settings, CABAC : Yes
Format settings, ReFrames : 5 frames
Codec ID : V_MPEG4/ISO/AVC
Duration : 1 h 35 min
Bit rate : 10.2 Mb/s
Width : 1 920 pixels
Height : 808 pixels
Display aspect ratio : 2.40:1
Frame rate mode : Constant
Frame rate : 23.976 (24000/1001) FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.273
Stream size : 6.79 GiB (89%)
Writing library : x264 core 148 r2762 90a61ec
Code: Alles auswählen
General
Complete name : /home/willy/Sully.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom (isom/iso2/mp41)
File size : 1.59 GiB
Duration : 1 h 35 min
Overall bit rate : 2 368 kb/s
Writing application : Lavf58.20.100
Video
ID : 1
Format : HEVC
Format/Info : High Efficiency Video Coding
Format profile : Main@L4@Main
Codec ID : hev1
Codec ID/Info : High Efficiency Video Coding
Duration : 1 h 35 min
Bit rate : 1 970 kb/s
Width : 1 920 pixels
Height : 808 pixels
Display aspect ratio : 2.40:1
Frame rate mode : Constant
Frame rate : 23.976 (24000/1001) FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.053
Stream size : 1.32 GiB (83%)
Language : English
Menus : 3
Codec configuration box : hvcC
Audio
ID : 2
Format : AAC LC
Format/Info : Advanced Audio Codec Low
Befehlszeile Teil 1
Code: Alles auswählen
ffmpeg -hwaccel cuvid -c:v h264_cuvid -i
da kommt dann raus:-hwaccels
List all hardware acceleration methods supported in this build of ffmpeg.
Code: Alles auswählen
ffmpeg -hwaccels
ffmpeg version 4.1.4 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 8 (Debian 8.3.0-19)
[.......]
Hardware acceleration methods:
vdpau
cuda
vaapi
qsv
opencl
qsv
cuvid
ffmpeg soll also mit der "Methode cuvid" die Graka benutzen, um den Film zu decodieren.
-c:v h264_cuvid ------> was bedeutet diese "-c:v" ?
Könnte ich da auch irgend was anderes benutzen?
ich hatte z. B. ewig rumprobiert, um HVEC über die Graka zu dekodieren und habe mir dann ein mpv- Profil mit folgendem Inhalt angelegt:
Code: Alles auswählen
[HEVC] #Einzige Möglichkeit HEVC über GTX 1060 3GB wiederzugeben
--hwdec=cuda #decodierung mit cuda
# Wiedergabe Fenster an Bildschirm anpassen":
autofit-larger=80%x80%
--keep-open=yes
Warum wird da cuda erwähnt wenn es doch cuvid sein sollte?
Lasse ich das weg, kommt folgende Fehlermeldung und die Last geht auf die CPU.
Code: Alles auswählen
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> hevc (hevc_nvenc))
Stream #0:1 -> #0:1 (ac3 (native) -> aac (native))
Press [q] to stop, [?] for help
[aac @ 0x55d2a738c180] Using a PCE to encode channel layout "5.1(side)"
[h264 @ 0x55d2a73aaf80] Error creating a NVDEC decoder: 1
[h264 @ 0x55d2a73aaf80] Failed setup for format cuda: hwaccel initialisation returned error.
Code: Alles auswählen
-vcodec hevc_nvenc -preset slow -cq 10 -g 150
Code: Alles auswählen
ffmpeg -codecs |grep hevc
Codecs:
D..... = Decoding supported
.E.... = Encoding supported
..V... = Video codec
..A... = Audio codec
..S... = Subtitle codec
...I.. = Intra frame-only codec
....L. = Lossy compression
.....S = Lossless compression
-------
[..............]
DEV.L. hevc H.265 / HEVC (High Efficiency Video Coding)
(decoders: hevc hevc_qsv hevc_v4l2m2m hevc_cuvid )
(encoders: libx265 nvenc_hevc hevc_nvenc hevc_qsv hevc_v4l2m2m hevc_vaapi libkvazaar )
Warum gerade hevc_nvenc und nicht libx265 oder irgend etwas anderes ? gibt es da Unterschiede ???
Über den Rest dieser Zeile
Code: Alles auswählen
preset slow -cq 10 -g 150
Ich wäre euch sehr dankbar, wenn ihr wenigstens etwas Licht in das Dunkel bringen würdet.
Vor allem diese kryptografischen Buchstabenfolgen zu erklären, wäre toll.
Da würde ich wenigstens halbwegs verstehen, was ich da so gemacht habe.
Danke im voraus