Ffmpeg Nvidia GPU mkv codificação tamanho do arquivo de saída

0

Eu tenho trabalhado com o ambiente abaixo.

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

GPU: GeForce GTX 1080ti

Eu tenho dois arquivos de mídia: caller_video.webm (80MB) e callee_video.webm (120MB)

Depois, estou demolindo áudios desses vídeos por meio do comando abaixo:

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

Caller.wav = 260 MB

Em seguida, muxing caller.wav file com callee_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

Tamanho do arquivo tempfile: 87MB

Então, estou codificando o arquivo temporário por meio do comando abaixo:

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

Tamanho final do vídeo: 270 MB

A coisa que eu estou tentando entender é que quando eu codifico o arquivo orig webm que é 80MB, o tamanho do arquivo mkv de saída codificado ~ 20MB.

No entanto, quando realizei a mesma operação no arquivo de mídia temporário muxed ( callee_video.webm + caller.wav ) que o tamanho é 87MB antes da codificação, torna-se 270MB.

O que eu estou perdendo ou fazendo errado?

    
por oktay eşgül 17.04.2018 / 10:33

1 resposta

0

Você não especificou nenhuma configuração de qualidade ou taxa de bits para o seu comando de codificação, então cabe ao codificador escolhê-lo. Isso pode resultar em uma taxa de bits maior.

Você pode especificar -b:v 1M para usar uma codificação de taxa de bits média de uma única passagem a 1 Mbit / s. A taxa de bits dependerá do tamanho do vídeo e dos seus requisitos de qualidade.

Você também pode usar -qp 23 para executar um código de qualidade fixa de taxa de bits variável no QP 23. QP mais alto significa menor qualidade e vice-versa.

Veja ffmpeg -h encoder=h264_nvenc para possíveis opções para o codificador.

    
por 17.04.2018 / 13:57