ffmpegを使用してflvファイルをmp4に変換してiOSデバイスで再生しようとしていますが、変換後のビデオの品質は元のビデオよりもはるかに劣っています。
ここに私が使用するコマンドがあります:
ffmpeg -i input.flv -ar 22050 output.mp4
flvからmp4への変換に最適な設定を誰かが提供してくれたら本当にありがたいです。
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 libfaac -q:a 100 output.mp4
ビデオ品質を改善するには、18までの低いCRF値などを使用できます。ファイルを小さくするには、高いCRFを使用しますが、品質が低下することに注意してください。
オーディオ品質を改善するには、より高い品質値を使用します。FAACの場合、100
デフォルトです。
以下は、質問で提案されたffmpegコマンドに関するいくつかの考えです。
-ar
オーディオのサンプルレートを指します。あなたが物事をよりよく理解するまで、これをいじらないことをお勧めします。オーディオエンコーディングで再生する場合は、ビットレート(例:)を調整し、-b:a 128k
それに基づいてエンコーダーが処理を選択できるようにします。
結局この道を行くことになったら...
CD品質は44100Hzサンプリングです。典型的なビデオは48000Hzを使用します。
元の質問の例の22050は、CD品質のサンプルレートの1/2であることに注意してください。CD素材をダウンコンバートする場合、これは良い選択です。48KHzのソースから始めている場合(おそらく、これはビデオファイルの44100よりもはるかに一般的です)、代わりに24Khzを使用します。おそらく大した問題にはならないでしょうが、変換の実行には少し良く聞こえ、CPUの使用量が少し少なくなります。
ffmpeg
サポートlibaac
が終了していることがわかりました。 この質問は、ffmpeg
のネイティブAACエンコーダーを使用する -c:a aac
か、Fraunhofer FDK AACコーデックを -c:a libfdk_aac
使用することをお勧めffmpeg
します(サポートするにはコンパイルが必要ですlibfdk_aac
)。