Größe der Ausgabedatei für die Ffmpeg Nvidia GPU MKV-Kodierung

Größe der Ausgabedatei für die Ffmpeg Nvidia GPU MKV-Kodierung

Ich habe mit der folgenden Umgebung gearbeitet.

Ubuntu 16.04.3

FFmpeg: 3.4.2

-- configuration: --prefix=/usr/local/ffmpeg_new/ --enable-cuda --enable-cuvid --enable-nvenc --enable-nonfree --enable-libnpp --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64 --enable-libvpx --enable-libvorbis --enable-libfreetype

Cuda 9.1.85

Grafikkarte: GeForce GTX 1080ti

Ich habe zwei Mediendateien: caller_video.webm (80 MB) und callee_video.webm (120 MB).

Dann demultiplexe ich die Audiodaten dieser Videos mit dem folgenden Befehl:

time ffmpeg -y -i caller.webm -vn -ab 256 caller.wav

Caller.wav= 260 MB

Dann muxen caller.wavDatei mitcallee_video.webm

time ffmpeg -y -i callee_video.webm -i caller.wav -filter_complex '[0:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=0.5[a1]; [1:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=0.5[a2]; [a1][a2]amerge,pan=stereo|c0<c0+c2|c1<c1+c3[out]' -map 0:v -map '[out]' -c:v copy  tempfile.mkv

Dateigröße der temporären Datei: 87 MB

Dann kodiere ich die temporäre Datei mit dem folgenden Befehl:

time ffmpeg -y -i temp_file.mkv    -pixel_format yuv444p -preset default  -vf  drawtext=fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf:x=8:y=8:fontsize=16:fontcolor=yellow@1:expansion=strftime:basetime=1518172680000000:text='%Y-%m-%d %H-%M-%S'  -acodec libvorbis  -c:v h264_nvenc   final_video.mkv

Final_video Größe: 270 MB

Was ich zu verstehen versuche, ist, dass wenn ich die orig webm80 MB große Datei kodiere, die Größe der kodierten MKV-Ausgabedatei ca. 20 MB beträgt.

Als ich jedoch dieselbe Operation mit der multiplexierten temporären Mediendatei ( callee_video.webm+ caller.wav) ausführte, betrug die Größe dieser Datei vor der Kodierung 87 MB und betrug 270 MB.

Was übersehe ich oder mache ich falsch?

Antwort1

Sie haben für Ihren Kodierungsbefehl keine Qualitäts- oder Bitrateneinstellung angegeben, daher muss der Kodierer diese auswählen. Dies kann zu einer höheren Bitrate führen.

Sie können angeben, -b:v 1Mdass eine Single-Pass-Durchschnittsbitrate-Kodierung mit 1 Mbit/s verwendet werden soll. Die Bitrate hängt von der Größe des Videos und Ihren Qualitätsanforderungen ab.

Sie können auch -qp 23eine Kodierung mit variabler Bitrate und fester Qualität bei QP 23 durchführen. Ein höherer QP bedeutet eine niedrigere Qualität und umgekehrt.

ffmpeg -h encoder=h264_nvencMögliche Optionen für den Encoder finden Sie unter .

verwandte Informationen