この動画がJW Playerで再生可能でシーク可能になるように、FFmpegでsome.flv
やsome.avi
やsome.wmv
を変換するにはどうすればいいのでしょうか?
28 None 2012-06-18
前回の@abrahabさんのコメントへの回答です
nginx経由で擬似的にストリーミングできるようにするためには、ファイルをmp4box
にする必要はありません。MP4 ストリーミングモジュールは、moov アトムの位置に関係なく(mp4box
はmoov アトムをファイルの先頭に移動させます)、これを処理します
今すぐ500サーバーエラーのために、あなたはmp4boxで”-frag “オプションを使用していますか?MP4ストリーミングモジュールは、断片化されたMP4ファイルを読み取ることができません。擬似的なストリーミングのためのmp4box
の良い使い方は、より良いシークエンスのために動画をインターリーブすることです。Moov アトムシフトは追加の利点です
FFmpegでエンコードされたファイルのmp4box
にはいつもこうしています
MP4Box -add MyVideo.mp4 -isma Myvideo-box.mp4
これはまた、デフォルトでは500ミリ秒のチャンクでMP4ファイルをインターリーブします
9 Vineet 2012-07-13
MP4のH.264
一般的には、MP4コンテナ内にx264ビデオを作成したい。このオプションは基本的にすべてのデバイスとブラウザでサポートされています
以下のようにすれば十分でしょう。入力名とCRFオプションを必ず入れ替えてください。後者は品質を設定するもので、正気の値は19から25までの範囲です – 低い値は品質が良いことを意味しますが、ビットレートも高くなります
ffmpeg -i input.avi -c:v libx264 -crf 23 -c:a aac -movflags faststart output.mp4
また、GUIの方法が好きならば、Handbrakeをエンコードに使用することもできます
faststart
オプションを使用します
さて、必要なのは MP4 コンテナの MOOV アトムを先頭に移動させることです。このアトム (要するに MP4 コンテナ内のデータの単位) には、ビデオ/オーディオストリームそのものに関する重要なメタデータが含まれています。-movflags faststart
はまさにこれを実行します
お使いのFFmpegのバージョンにこのオプションがない場合は、アップグレードを検討してください。アップグレードできない場合は、以下のツールを使って同じことができます
QTIndexSwapper、Adobe AIRアプリケーションです
MP4Box、フリーでオープンソース、以下のようなコマンドを実行すると、間隔(ここでは、500)を変更することができます
mp4box -inter 500 input.mp4
qt-faststart in Pythonは、Pythonがインストールされている場所であればどこでも動作します
qtfaststart input.mp4
そんなところです
ビットレート/品質を制御します
さて、もちろん、ストリーミングの場合、実際にはビットレートを一定の範囲内に収まるように制限したいかもしれません。これについての詳細は、レート制御の方法についてのブログ記事を参照してください
例えば、エンコーディングオプションに-maxrate 2M -bufsize 2M
を追加すると、エンコーディングの上限は2Mbit/sになります。必要なビットレートは、コンテンツの複雑さによって異なります。これには試行錯誤が必要です
49 slhck 2012-06-18
あなたは単にこれを行うことによって、すべてを再エンコードすることなく、また、非ストリーミングAVIまたはMP4を変換することができます
ffmpeg -i INPUT.mp4 -c copy -movflags faststart STREAMABLE_OUTPUT.mp4
moovの原子を移動させるだけなので、何も再エンコードする必要はありません
8 user769852 2017-09-10
他の回答の上に追加するにはif you have srt
‘s このwill convert them for you too
ffmpeg \
-i "$1.mp4" \
-c:v libx264 \
-crf 23 \
-c:a aac \
-movflags faststart \
-maxrate 2M \
-bufsize 2M \
"$dest/$1.mp4"
curl \
--form subrip_file=@"$1.srt" \
-o "$dest/$1.vtt" \
'https://atelier.u-sub.net/srt2vtt/'
0 Hashbrown 2020-08-29
ffmpegで試してみてください
ffmpeg.exe -i "INPUT_FILE.AVI" -threads 2 -s 800x600 -r 25.00 -threads 1 -pix_fmt yuv420p -g 300 -qmin 3 -b 2048k -async 1 -acodec pcm_s16le -ar 22050 -ac 1 -ab 128k -y "OUTPUT_FILE.mp4"
-1 Tomás Hernández 2012-08-26