Ffmpegを使用してflvファイルをmp4に変換してiOSデバイスで再生しようとしていますが、変換されたビデオの品質は元のビデオよりもはるかに劣ります。
これが私が使用するコマンドです:
ffmpeg -i input.flv -ar 22050 output.mp4
FLVからMP4への変換に最適な設定を誰かに提供してもらえれば幸いです。
FLVで使用されるコーデックによっては、mp4コンテナーに再ラップするだけで問題を回避できる場合があります。 H.264
またはMPEG4 simple profile
ビデオとAAC
オーディオが必要です。 ffmpeg -i input.flv
を使用して、ソースファイルに関する情報を見つけることができます。
H.264/MPEG4 Simple + AACだけで十分か、サポートされているコーデックに特定のオプションがあるかどうかはわかりません。テストするのは簡単です:
使ってみてください
ffmpeg -i input.flv -c copy -copyts output.mp4
-copyts
はcopy timestamps
であり、オーディオの同期に役立ちます。
それがうまくいかない場合は、オーディオとビデオのコーデックを強制してみてください。これにより、ファイルが再エンコードされます。
ffmpeg -i input.flv -c:v libx264 -crf 23 -c:a aac -b:a 160k output.mp4
ビデオ品質を向上させるために、より低いCRF値を使用できます。 18までのすべて。小さいファイルを取得するには、より高いCRFを使用しますが、これにより品質が低下することに注意してください。
オーディオ品質を向上させるには、より高いビットレート(上記の例では160k)を選択します。
FFMPEG aacエンコーディングの詳細 (私はffmpegサイトで説明されている「ネイティブ」エンコーダーを参照しています)。
質問で提案されたffmpegコマンドに関するいくつかの考えを以下に示します。
-ar
は、オーディオサンプルレートを表します。あなたが物事をよりよく理解するまで、私はこれをいじらないことをお勧めします。オーディオエンコーディングで再生する場合は、ビットレートを調整し(例:-b:a 160k
)、エンコーダーがそれに基づいて何をするかを選択します。
あなたがこの道を行くことになるなら...
CDの品質は44100Hzのサンプリングです。典型的なビデオは48000Hzを使用します。
元の質問の例の22050は、cd品質のサンプルレートの1/2であることに注意してください。 CD素材をダウンコンバートする場合、これは良い選択です。 48KHzソース(これはおそらくそうですが、これもビデオファイルでは44100よりもはるかに一般的です)から始めている場合は、代わりに24Khzを使用します。それはおそらく大した問題ではないでしょうが、少し良い音になり、変換を行うために少しCPUを使うかもしれません。