web-dev-qa-db-ja.com

すべてのブラウザとデバイス(windows / mac / iOs / Android)で機能するFFMPEGでh264をエンコードします

FFMPEGを使用して画像をWindowsブラウザとMacブラウザおよびiOSで動作するh264ビデオファイルにエンコードしたい/ 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をlibx264ではなくmpeg4に変更すると、iOs/MACで機能しますが、Windowsでは機能しません。これは本当に紛らわしいです!

ffmpegバージョン3.0.1を使用-静的 http://johnvansickle.com/ffmpeg/ Copyright(c)2000 -2016FFmpeg開発者

Ffmpegの最新バージョンを使用しているので、以下のコマンドを使用してください

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は、幅広い互換性のために最小公分母baselineに設定されます。 MOOVボックスはファイルの先頭に移動するため、再生を開始する前にMP4全体をダウンロードする必要はありません。

デフォルトでは、ffmpegは、特に指定されていない限り、画像シーケンスに25のフレームレートを割り当てます。 2015年12月以降、ネイティブAACエンコーダーは実験用としてマークされなくなりました。

720x480のサイズ値とHTML5ビデオサイズ(640x480)の両方から、NTSCソースマテリアルを扱っていると思います。その場合は、

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
1
Gyan