3

Flash Media Server でビデオをストリーミングできるように、MP4 ビデオ ファイルを f4v ビデオ ファイルに変換しようとしています。理想的には、ビデオのマルチビットレートストリーミングを実現できるように、mp4 をさまざまなビットレートに変換したいと考えています。ffmpeg がこれに対応していると確信していますが、さまざまなエラー メッセージが表示され続けます。これが私が試した最新のものです:

ffmpeg.exe -i source.mp4 -ar 150 destination.f4v

次のエラー メッセージが表示されます。

前もって感謝します!

4

2 に答える 2

5

いくつかの注意:

  1. MP4ファイルは、ビデオ用のH.264とオーディオ用のAACが含まれている場合、ストリーミングにすでに適しています。source.mp4はすでにH.264/AACですか?その場合、F4Vにトランスコードする必要はありません。F4Vといえば...
  2. F4Vは、H.264ビデオとAACオーディオを含む単なるMP4ファイルです。たまたまAdobeがFlashビデオ用に提案したファイル拡張子が付いています。特にない。
  3. 「-ar150」はほぼ間違いなくあなたが望むものではありません-これは150Hzを意味します。CD品質のオーディオは44100Hzです。オーディオビットレートを設定するために「-ab」を意味しましたか?これはビット/秒で表され、150はまだ低すぎることに注意してください。
  4. エラーメッセージを直接コピーして貼り付けましたか?エラーが「destination.mp4」に言及しているときに「destination.f4v」の出力を指定したためです。私はこの不一致を説明することはできません。おそらく、完全なエラー出力で質問を修正します。
于 2012-05-01T02:46:28.650 に答える
4

まず、.f4v は、少なくとも ffmpeg から見れば、F4V ビデオ フォーマットの正式な拡張子ではありません。

mp4 ファイルをストリーミングしたい場合、フラッシュ プレーヤーの一部の実装では、まだダウンロードされていない場所をシークできます。通常の解決策は、これらのファイルを f4v コンテナーに変換 (実際には再パッケージ化するだけ) することです。

ストリーミングと互換性のある f4v に変換するには、Yamdi (http://yamdi.sourceforge.net/) などの FLV メタデータ インジェクターを使用する必要があります。

実行できる手順:

ffmpeg.exe -i source.mp4 -vcodec copy -acodec copy destination.flv

これにより、ビデオとオーディオが flv ファイルに直接再パッケージ化されます。入力が H.264 の場合、FFMPEG は自動的に f4v 形式を使用します。

yamdi -i destination.flv -o destination.f4v

メタデータを挿入すると、f4v ファイルをストリーミングできるようになります。この最後の手順を省略すると、ファイルがダウンロードされた部分にしか移動できなくなります。

参考までに、可変ビットレートをサポートできる場合は、-crf オプションを使用してください。2 パス エンコーディングでは、指定したビットレートに近いビットレートが得られますが、2 倍の時間がかかります。ただし、一定のレート係数を使用すると一定の品質が得られますが、必要なビットレートを取得するには、おそらくさまざまな値をテストする必要があります (知覚できない損失には正気です: 18 - 24)。

于 2012-09-28T08:56:06.327 に答える