2013-07-22 8 views
7

ffmpegで使用するファイルをインポートしますが、ストリームのコーデックについて何も指定しないと、ffmpegは何も行いませんか?コーデックをコピーするだけのデフォルトのアクションですか?または、デフォルトのコーデックを使用して入力ファイルをffmpegでエンコードしますか?何も指定しない場合のデフォルトのffmpegコーデック

次の2つのコマンドは同じですか?または、2番目のエンコードと年齢を取るか?

ffmpeg -i input.mkv -c:v copy -c:a copy output.mp4 

ffmpeg -i input.mkv output.mp4 

答えて

7

私はffmpegのに使用するファイルをインポートするが、ストリームのいずれかのコーデックについて何も指定していけない場合は、何かをffmpegのだろうか?

ffmpegは、デフォルトのエンコーダを使用して入力内の各ストリームを再エンコードします。使用されるエンコーダは、ffmpegの設定方法によって異なります。たとえば、libx264がmp4出力のデフォルトのエンコーダになりますが、そうでない場合はmpeg4が使用されます。デフォルトでは、ffmpegは各タイプのストリームを1つだけ再エンコードし、残りは無視します(stream selection参照)。

2つのコマンドのうち、最初のものはビデオとオーディオにstream copy modeを使用します。 2番目のコマンドは再エンコードされます。 お使いのコンピュータ上で、2番目のコマンドで使用されるデフォルトのコーデック(オーディオとビデオの両方)を検出するに

+0

既にh.264ビデオストリームを持つmp4ファイルをインポートするとどうなりますか?とにかく長い時間を取って何かを変えないで、再びエンコードしようとしますか?それとも、すでにデフォルトのコーデックであることを認識してコピーするだけですか? – Sam

+0

@Sam 'ffmpeg'は、あなたがそうでないと言わない限り、常に再エンコードします。 – LordNeckbeard

+0

正確に同じコーデック(つまり、h.264-> h.264)に再エンコードすると、品質の低下はありますか?別のコーデックからh.264へ行くよりも速くなるのでしょうか?私はこれを行うことに任意のポイントがあるとは思わないが、私はとにかく興味がある... – Sam

1

  • ラン2番目のコマンドは、おそらく-t 5とそれは(エンコードのみ5より早く終了します秒)。

  • 実行ffprobe output.mp4。 「ビデオ」と「オーディオ」の出力をスキャンして、どのコーデックが使用されたかを確認します。たとえば、私のUbuntu 12インストールでは、h264とaacが使用されます。

関連する問題