Кодировать h264 с помощью FFMPEG, который работает во всех браузерах и устройствах (windows / mac / iOs / Android)

1274
Fight Fire With Fire

Я хочу кодировать изображения с помощью FFMPEG в видеофайл h264, который будет работать на браузерах Windows и Mac, а также на устройствах iOS / Android для отображения в HTML5. Есть ли способ сделать это, используя один закодированный файл? В настоящее время моя строка ffmpeg кодирует только для Windows / Android сейчас

Вот мой текущий код ffmpeg:

и вот мой 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> 

Если я заменю -vcodec на mpeg4 вместо libx264, он будет работать на iOs / MAC, но не на windows! Что действительно сбивает с толку!

использование ffmpeg версии 3.0.1-static http://johnvansickle.com/ffmpeg/ Copyright (c) 2000 -2016 разработчики FFmpeg

2

1 ответ на вопрос

1
Gyan

Since you're using a very recent version of ffmpeg, use the command below

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 is set to the lowest common denominator baseline for broad compatibility. The MOOV box is shifted to the head of the file, so the whole MP4 does not need to be downloaded before playback can start.

By default, ffmpeg assigns a framerate of 25 to image sequences, unless specified otherwise. Since Dec 2015, the native AAC encoder is no longer marked as experimental.

Both the size value of 720x480 and HTML5 video size - 640x480 - makes me think you're dealing with NTSC source material. If so, 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 

Похожие вопросы