ffmpeg – HTTP ストリーミングの準備ができている MP4 動画を作成する

ffmpeg freebsd streaming video-streaming

この動画がJW Playerで再生可能でシーク可能になるように、FFmpegでsome.flvsome.avisome.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


タイトルとURLをコピーしました