Codifique h264 com FFMPEG que funciona em todos os navegadores e dispositivos (windows / mac / iOs / Android)

2

Eu quero codificar imagens com FFMPEG para um arquivo de vídeo h264 que funcionará em navegadores Windows e navegadores Mac e dispositivos iOS / Android para exibir em HTML5. Existe uma maneira de fazer isso usando um arquivo codificado? Atualmente minha string ffmpeg codifica apenas para windows / android agora

Aqui está o meu código ffmpeg atual:

e aqui está o meu código de exibição HTML5:

ffmpeg -y -r 25 -i ./images/video%04d.png -i  music.wav -shortest -vcodec libx264 -s  720x480 -strict experimental -acodec aac video_file.mp4

<video width="640" height="480"  controls="" preload="" poster="../poster.jpg">
    <source src="video.mp4" type="video/mp4">
    Your browser does not support the video tag.
</video>

Se eu alterar -vcodec para mpeg4 em vez de libx264, ele funciona em iOs / MAC, mas não em windows! O que é realmente confuso!

usando ffmpeg versão 3.0.1-static link Copyright (c) 2000 -2016 os desenvolvedores do FFmpeg

    
por Fight Fire With Fire 02.05.2016 / 00:48

1 resposta

1

Como você está usando uma versão muito recente do ffmpeg, use o comando abaixo

ffmpeg -y -i ./images/video%04d.png -i music.wav -profile:v baseline -shortest -vcodec libx264 -s  720x480 -acodec aac -movflags +faststart video_file.mp4

profile está definido para o menor denominador comum baseline para compatibilidade ampla. A caixa MOOV é deslocada para a cabeça do arquivo, então o MP4 inteiro não precisa ser baixado antes que a reprodução possa começar.

Por padrão, o ffmpeg atribui uma taxa de quadros de 25 a seqüências de imagens, a menos que seja especificado de outra forma. Desde dezembro de 2015, o codificador AAC nativo não é mais marcado como experimental.

Tanto o valor de tamanho de 720x480 quanto o tamanho de vídeo HTML5 - 640x480 - me fazem pensar que você está lidando com material de origem NTSC. Se sim, use

ffmpeg -y -framerate 30000/1001 -i ./images/video%04d.png -i music.wav -vf "scale=640x480,setsar=1' -profile:v baseline -shortest -vcodec libx264 -acodec aac -movflags +faststart video_file.mp4
    
por 02.05.2016 / 09:01