Uma demonstração da técnica que mostrei antes…

Finalmente botei as mãos em “Avengers Endgame” pra assistir (meio “torrado”, se é que me entendem). Mas, o arquivo tem 5.8 GiB de tamanho com um bitrate de quase 4 Mb/s (para um vídeo em 720p) e ainda áudio Dolby (5.1 canais) com bitrate de 384 kb/s:

$ ls -goh *.avi
-rw-rw-r-- 1 5,8G jul 29 20:59 Avengers.Endgame.2019.720p.WEB-DL.XviD.AC3-FGT.avi

$ VNAME="Avengers.Endgame.2019.720p.WEB-DL.XviD.AC3-FGT"

$ for i in Width Height FrameRate BitRate; do \
  echo -n "${i}: "; \
  mediainfo --inform="Video;%${i}%" "${VNAME}.avi"; \
done

Width: 1280
Height: 536
FrameRate: 23.976
BitRate: 3985735

$ mediainfo --inform="Audio;%BitRate%" "${VNAME}.avi" 
384000

Podemos fazer melhor, huh? Calculando o bitrate do vídeo, de acordo com minha formuletinha:

\displaystyle V_{bitrate}=\frac{1280 \cdot 536 \cdot 23.976}{13.824}=1189920\;b/s

Ou seja, cerca de 1.2 Mb/s… Reduzindo o bitrate do áudio para 128 kb/s e somente com 2 canais (stereo) porque não tenho equipamento para “tocar” som surround, temos:

$ ffmpeg -v quiet -stats -hwaccel cuvid -i "${VNAME}.avi" \
  -c:v h264_nvenc -maxrate 1189920 -bufsize 1189920 -b:v 1189920 \
  -c:a ac3 -b:a 128k -ac 2 \
  "${VNAME}.mp4"

$ rename 's/XviD/H264/' *.mp4

Depois de 18 minutos de codificação (note que estou usando CUDA e o encoder da nVidia para h264, mas minha placa gráfica é uma GT630 e consigo uma taxa de velocidade de conversão de 10x – Em testes, feitos na máquina de meu irmão, com uma GTX 1070, obtivemos 70x! Ou seja a conversão demoraria pouco mais de 2 minutos!):

$ ls -goh *.{avi,mp4}
-rw-r--r-- 1 1,7G jul 29 21:36 Avengers.Endgame.2019.720p.WEB-DL.H264.AC3-FGT.mp4
-rw-rw-r-- 1 5,8G jul 29 21:18 Avengers.Endgame.2019.720p.WEB-DL.XviD.AC3-FGT.avi

Nada mau, huh? Um arquivão de 5.8 GiB ficou com 1.7 GiB (cabe num pendrive com FAT32 tranquilo). E sem perder qualidade (que eu possa perceber!)… A imagem comparativa, abaixo, não faz justiça (não é o mesmo quadro – embora alguma perda na faixa dinâmica pareça estar acontecendo, não está!), mas dá uma ideia: