MP4ビデオファイルからオーディオトラックを削除する方法


回答:


111

最初に実行ffmpeg -i file.mp4して、ファイルに存在するストリームを確認します。次のように表示されます。

Stream #0.0: Video: mpeg4, yuv420p, 720x304 [PAR 1:1 DAR 45:19], 23.98 tbr, 23.98 tbn, 23.98 tbc
Stream #0.1: Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s
Stream #0.2: Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s

次に実行ffmpeg -i file.mp4 -map 0:0 -map 0:2 -acodec copy -vcodec copy new_file.mp4して、ビデオストリームと2番目のオーディオストリームをにコピーしnew_file.mp4ます。


3
Windowsでは、このコマンドでエラーが発生しましたOption map (set input stream mapping) cannot be applied to input file file.mp4 new_file.mp4 -- you are trying to apply an input option to an output file or vice versa. Move this option before the file it belongs to.。修正するには、引数の順序を次のように変更するだけですffmpeg -i file.mp4 -map 0:0 -map 0:2 -acodec copy -vcodec copy new_file.mp4
。– MrLore

OS X上@MrLoreと同じエラー
オスカーPerssonの

1
Ubuntuでも同じです!
トンマーゾ

MKV形式でも
動作し

1
より一般的なオプション-c copyを使用して、オーディオ、ビデオだけでなく字幕のストリームも同じにすることができますffmpeg -i input.mp4 -map 0:0 -map 0:2 -c copy output.mp4
致命的

97

関連する問題-mp4ファイルからすべてのオーディオトラックを削除するには、次のようにします。

ffmpeg -i input_file.mp4 -vcodec copy -an output_file.mp4

1
これは私にエラーを与えますが、私はThe encoder 'aac' is experimental but experimental codecs are not enabled, add '-strict -2' if you want to use it.それらのフラグを追加しましたが、それはまだ同じです...?
-poshaughnessy


re poshaughnessyのコメント:ここにいくつかの情報があるようです:stackoverflow.com/questions/32931685/… 議論は、ffmpegの最近のバージョンが「aac実験的」問題を経験しないことを示唆しています。原則として、使用しているソフトウェアのバージョンと、エラーを発生させたコマンドの正確な構文(フラグを追加した後)を述べると、問題の診断に役立ちます(freeseekのanswer loc。citを参照)。 )。この特定のケースでは、入力ファイルからのビデオ情報も役立つ場合があります。
グレッグマーク

8

ストリーム番号を特定します。

$ ffmpeg -i in.mp4
   ...
   Stream #0:0: Video: ...
   Stream #0:1: Audio: ...
   Stream #0:2: Audio: ...

-map _file_:_stream_処理して出力するストリームを選択するために使用します

$ ffmpeg -i in.mp4 -map 0:0 -map 0:2 -vcodec copy -acodec copy out.mp4

参照:https : //ffmpeg.org/ffmpeg.html#Advanced-options


4

avidemux内部で1つのオーディオファイルのみを処理するように試みることができます(したがって、1つの特定のトラックを選択するように強制されます)。.mp4で試したことはありませんが、他の形式でも動作します。


うまくいきません。多分それはバグかもしれませんが、オーディオは壊れてしまいますが、それは仕事をします(オーディオトラックの残りを削除します)。
シェパン

3

私が使用Avidemux(GUI)を数回、とffmpegの(コンソール)。

Avidemuxでは、メインメニューで[オーディオ]-> [トラックの選択]を選択します。次に、ビデオを新しいファイルとして保存します。

興味深いことに、場合によっては、Avidemuxはffmpegよりも「良い」出力を生成しました。

念のため、Avidemuxとffmpegは標準のFedora Linuxリポジトリにあります。(他のLinuxフレーバーでも標準であると確信しています。)


1

-vnまたは-an、すべてのビデオまたはオーディオトラックを削除します。提供-vn -acodec copyするとビデオが削除されます。-an -vcodec copyすべてのオーディオが削除されます。

-vcodec copyffmpegが既存のビデオトラックをそのままコピーすることを指定します(処理もエンコードも行いません)。指定しない場合でも機能しますが、ffmpegは既存のビデオトラックを再エンコードする可能性があり、操作により多くのCPUが使用され、かなり時間がかかる可能性があります。


0

コマンドラインでのavidemuxの使用。

(上記のhttps://unix.stackexchange.com/a/85834/4319で説明されているAvidemux GUIでは、オーディオトラックを選択/選択解除してファイルを保存するだけです(すべてが新しいAVIにコピーされます)。

SpiderMonkeyまたはTinyPyプロジェクトとして保存されるプロジェクトの種類を自分のアクションで調べましたが、SpiderMonkey(JavaScript)プロジェクトには必要なオーディオトラック選択アクションがありませんでしたが、TinyPy(Python)プロジェクトにはそれら。

私は関係のないものすべて(不要な行の数十)を削除しましたが、これは私が得たものですsome_series.py

#PY  <- Needed to identify #
#--automatically built--

adm = Avidemux()

adm.audioClearTracks()
adm.audioAddTrack(1)

トラック1を離れますが、トラック0をドロップします。

次に、次のようなコマンドを使用して、多くのファイルのバッチ変換を実行しました。

for f in *.avi; do avidemux3_cli --nogui --load "$f" --run ../some_series.py --save ../some_series/"${f%%.rus.eng.avi}".eng.avi --quit; done

すべてをコピーしますが、必要なオーディオトラック以外はすべてドロップします。

コマンドラインからavidemuxを実行する方法は、https: //www.avidemux.org/admWiki/doku.php?id=tutorial:batch_processingから学習しましたが、Pythonスクリプトには言及せず、JSスクリプトのみに言及しています(私にはうまくいきませんでした)。


-1

プログラムがGUIであることを気にしない場合は、Blenderのビデオエディタを使用すると、それ以上のことができます。


-2

ffmpegプログラムが置き換えられていますavconvavconvに非常によく似た使い方があるためffmpeg、この投稿のコマンドはすべて次のようになります。

avconv <old ffpmeg command line options>

Ubuntuを使用している場合は、このリンクに従ってインストールしavconvてください。


-3

FFMPEGはあなたに役立つソリューションかもしれません。

$ man ffmpeg

ちょっと見てみると、かなり濃い。「オーディオ」と「オーディオトラック」を検索しましたが、何も明らかではありませんでした。
シェパン

@Tshepang、「トラック」はあいまいです。これがおそらく、FFmpegがより正確な用語を好む理由です。FFmpegは、オーディオが「ストリーム」に入ってくると見なします。各ストリームは、1つ以上の「チャネル」で構成されます。AFAICT、各チャネルはモノラルで、デフォルトでは、どの出力に送信(パン)する必要があるかを記述するストリームがあります。たとえば、ステレオストリームは2つのチャネルで構成され、1つはデフォルトでサウンドカードの左出力に送信され、もう1つはデフォルトでサウンドカードの右出力に送信されます。
サンパブロクパー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.