次のストリームを含む.avi
ファイルがあります。
Stream #0.0: Video: mpeg4 (Advanced Simple Profile), yuv420p, 608x256 [PAR 1:1 DAR 19:8], 23.98 tbn, 23.98 tbc
Stream #0.1: Audio: mp3, 48000 Hz, stereo, s16p, 128 kb/s
述べたようにmpeg4ビデオストリームをサポートすることになっているiPhoneでこの映画を再生したい 前の質問で 。今のところ、私はオーディオストリームを気にしません(mp3はiPhoneでサポートされていないようです)
結果として、ファイルの「コンテナ」形式を、iPhoneで必要な.avi
から.mp4
に変換する方法を探しています。それは実行可能ですか?はいの場合、どうすればよいですか?
おそらく、avconv
でもそれを行う方法を追加する必要があります。
avconv -i input.avi -c:v copy -c:a copy output.mp4
ソースからlibav
をコンパイルしてそれを行う場合は、mp4マルチプレクサが有効になっていることを確認する必要があります。あなたはそれをすることができます
./configure [your other options] --enable-muxer=mp4
通常はデフォルトで有効になっていますが、通常のオプションのどこかで--disable-everything
または--disable-muxers
を使用している場合に備えてここで提供します。
いつでもmencoderを使用できます
詳細はこちら: メンコーダーを使用したiPhone用のエンコードビデオ
これは私が使用するものです:
ffmpeg -y -i %INFILE% -vcodec mpeg4 -r 65535/2733 -vb 600k -acodec libvo_aacenc -ac 1 -ab 94000 -ar 16000 -s 480x320 %OUTFILE%.new.mp4
これはDOSバッチスクリプトから取得されているため、変数を少し更新する必要がある場合があります。
画面の解像度は私の携帯電話用に最適化されているので、それも変更する必要があるかもしれません。または、そのままにしておくこともできます。
-vbはビデオのビットレートです。超高速のビデオは必要ないので、この値に縮小することがよくあります。繰り返しますが、必要に応じてこれを省略できます。
ffmpeg -i input.avi -c:v libx264 -profile:v baseline -level 3.0 -c:a copy output.mp4
これにより、ビデオがh.264で再エンコードされますが、すべてのiPhoneで機能するはずです。