flv
とmp4
ファイルにはaac
オーディオが含まれますが、avi
ビデオには通常mp3
オーディオストリームが含まれます。
どのコマンド(avconv、ffmpeg)が音声をトランスコードせずに抽出しますか?
コメント
- 興味があるかもしれません PHPスクリプトを作成しました。これを使用して、出力オーディオファイルの拡張子を自動的に決定します。
回答
ffmpeg -i video.mp4 -vn -acodec copy audio.aac
すべてのパラメーターの機能について簡単に説明します。
-
-i
オプションは入力ファイルを指定します。 -
-vn
オプションはビデオ部分をスキップするために使用されます。 -
-acodec copy
は、元のコーデックを保持したままオーディオストリームをコピーします。
Comme nts
- mp4ビデオにはmp3ではなくaacオーディオが含まれていますが、トランスコーディングせずにオーディオストリームを維持していますか?
- Didn '出力ファイルの拡張子は気にしないでください、私の間違いです。答えを更新しました。とにかく、完全な答えを読むと、-acodecコピーであることがわかります。これにより、トランスコーディングが回避されます。
- 再生が簡単ではないように思われるため、aacではなくm4a(aacのコンテナ)をお勧めします
- ffmpegまたはavconvを使用しているときに、入出力ファイルの実際の名前を指定せずにコマンドを実行して、コマンドをそのように使用することは可能ですか? (nemoファイルマネージャーのコンテキストメニューアクションで使用したい)
- 変数などを使用することもできますが、具体的な詳細をすべて含めて質問することをお勧めします。
回答
補足的な回答として、ファイルの特定の名前を必要としないコマンドを使用します。
aacオーディオを含むビデオの場合:
ffmpeg -i "$0" -map 0:1 -c:a copy "${0%%.*}".m4a
コンテキストメニューコマンドで使用するには、次のようなフォームが機能します:
bash -c "ffmpeg -i "$0" -map 0:1 -c:a copy "${0%%.*}".m4a" %f
他のビデオ形式入力の対応するオーディオ形式出力に置き換えます。
初期ソースここ。