Um bom primeiro lugar para começar é com os arquivos .mp4 reais, onde geralmente há grandes áreas de melhoria.
Portanto, antes de se perder na sintonia do NGINX ou do Apache, primeiro ajuste seus arquivos .mp4.
Para este post cinematográfico é como um filme ou programa de televisão, onde cada mudança de quadro é necessária. Em outras palavras, tentar retransificar um filme como "The Croods" para 1 fps (frame / second) reduziria a qualidade para unwatchable.
E não-cinematográfico refere-se a capturas de tela, como Webinars, que nosso material didático postou na Udemy.
Primeiro, considere o componente de áudio do arquivo. Se o componente de áudio estiver falando primariamente, então use o ffmpeg para retrans- codificar o arquivo onde você copiou o fluxo de vídeo (sem alteração) + converta o fluxo estéreo para mono. Para muitos arquivos .mp4 (não-cinematográfico), aproximadamente 1/3 do tamanho do arquivo de filme é de vídeo + 1/3 é o canal de áudio esquerdo + 1/3 é o canal de áudio correto. Mudar de estéreo para mono pode reduzir consideravelmente o tamanho do arquivo.
Em segundo lugar, retransifique o áudio usando FDK-AAC ( link ) que produz arquivos muito menores do que outros codificadores aac. A maioria das versões modernas do ffmpeg constrói automagicamente o FDK-AAC atualmente. Até o Macports agora constrói isso. Uma consideração, para o FDK fazer sua mágica real, requer uma faixa estéreo + ao usar compressas de áudio estéreo FDK muito menores que mono, então se você estiver usando FDK, use estéreo.
Em terceiro lugar, para áudio, reduza a taxa de bits. Muitas vezes isso é 48k, então, em geral, use -ar 44100 (ffmpeg) ou falado (low fi) considere cair para 22050.
Adiante, defina a taxa de quadros do seu vídeo o mais baixo possível. Então, se você está fazendo uma captura de tela, um quadro só pode mudar uma vez em 10-60 segundos, então você pode diminuir a taxa de quadros usando -r $ fps, muitas vezes de 30-60 fps a 1-5 fps + a qualidade permanece a mesma enquanto o tamanho do arquivo cai.
Muitas vezes, comprime arquivos não-cinematográficos, onde cada 1G reduz para 10-20M.
Em quinto lugar, certifique-se de que o átomo mov do faststart esteja na frente de seus arquivos, para que seus arquivos possam ser transmitidos em vez de baixados.
Meus parâmetros ffmpeg fdk ...
-c: um perfil libfdk_aac: um aac_he_v2 -after-queimador 1 -sinalizando explícito_sbr -vbr 5 -ac2 -ar 44100
Na verdade, aqui está um típico comando ffmpeg completo ...
O script mp4 é apenas um wrapper em torno do ffmpeg que faz coisas como adivinhar quais faixas de áudio + vídeo estão em inglês (para arquivos multitrack avi + mkv) + depois construir o comando ffmpeg. O que é interessante é o comando real, que é o resíduo de anos de experimentos.
Tente primeiro executar seus arquivos por meio da compressão extrema do ffmpeg e, em seguida, veja se os pesos dos arquivos são muito baixos / pequenos, se não é necessário nenhum ajuste do servidor da Web.
Áreas de experimento: -r $ fps + -v: crf + -v: pré-ajuste + -ar taxa de bits
Um pouco de experiência lhe dará as configurações para o menor tamanho de arquivo + qualidade aceitável.
Muitas das opções ímpares, como + genpts + limpando SAR / DAR, estão lá para garantir que os arquivos .mp4 sejam reproduzidos nas unidades Roku. Estes são bons para manter, no caso de você configurar o seu próprio Canal Roku, o que é um caminho livre para alcançar mais de 5.000.000 domicílios.
Meu comando ffmpeg ...
imac > mp4 --dr --noisy foo.avi
tc: diag = v:! h264: mpeg4, a:! aac: ac3 título = 'Foo (TC)' Foo-640x480-veryfast-crf18-max-tc.mp4
cd '/Users/david/Downloads/Casper.A.Spirited.Beginning.1997.DVDrip.iNTERNAL.XviD-BPDcarrier'
nice -19 ffmpeg -fflags + genpts -i "foo.avi" -map 0: 0 -c: v libx264 -crf: v 18 -preset: v muitofast -tune: v filme -nevel: v 4.1 -profile: v high -bufsize: v 5000k -vf setdar = dar = 0, setsar = sar = 0 -x264opts colorprim = bt709: transferência = bt709: colormatrix = bt709: fullrange = off -r 29.97 -movflags + faststart -map 0: 1 -c: um perfil libfdk_aac: um aac_he_v2 -after-queimador 1 -sinalização explícita_sbr -vbr 5 -ac2 -ar 44100 -título dos metadados = 'Foo (TC)' -padrões 0 -f mp4 -benchmark Foo-640x480-veryfast-crf18-max- tc.mp4.tmp
mv -f Foo-640x480-veryfast-crf18-max-tc.mp4.tmp Foo-640x480-muito-rápido-crf18-max-tc.mp4