Удалить аудио из видеофайла с помощью FFmpeg

Удалить аудио из видеофайла с помощью FFmpeg

Как удалить звуковую дорожку из видеофайла с помощью FFmpeg?

решение1

Вы удаляете звук, используя -anфлаг:

input_file=example.mkv
output_file=example-nosound.mkv

ffmpeg -i $input_file -c copy -an $output_file

Этот флаг ffmpeg задокументированздесь.

решение2

Вероятно, вы не хотите перекодировать видео (это медленный и сопряженный с потерями процесс), поэтому попробуйте:

input_file=example.mkv
output_file=example-nosound.mkv

ffmpeg -i $input_file -vcodec copy -an $output_file

(примечание: некоторые дистрибутивы Linux теперь поставляются сavconv форк ffmpeg)

решение3

avconv -i [input_file] -vcodec copy -an [output_file]

Если вы не можете установить ffmpegиз-за существующего или avconvпопробуйте это.

решение4

Вы также можете использовать -mapопцию , ffmpegчтобы лучше контролировать, что именно будет помещено в конечный видеоконтейнер.

Предположим, например, что ваш видеофайл my_video.mp4составлен следующим образом:

Input #0
  Stream #0:0 Video: h264
  Stream #0:1 Audio: English
  Stream #0:2 Audio: German
  Stream #0:3 Audio: Japanese
  Stream #0:4 Audio: Spanish
  Stream #0:5 Audio: Italian

Удалятьвсеаудиодорожки (как это -anделает опция):

ffmpeg -i my_video.mp4 -map 0 -map -0:a -c copy my_video.noaudio.mp4`

-map 0захватывает все входные данные (видео, аудио, субтитры, метаданные, главы и т. д.).
-map -0:a удаляет все звуковые дорожкииз ввода 0 (обратите внимание на -знак).
-c copyкопирует как есть, без перекодирования.

Чтобы удалитьЯпонскийииспанскийтреки:

ffmpeg -i my_video.mp4 -map 0 -map -0:3 -map -0:4 -c copy my_video.nojap.noesp.mp4`

-map -0:3удаляет 3-ю дорожку со входа 0, которая является японским звуком.
-map -0:4удаляет 4-ю дорожку со входа 0, которая является испанским звуком.

Чтобы удалить все звуковые дорожки, кромеитальянский:

ffmpeg -i my_video.mp4 -map 0 -map -0:a -map 0:5 -c copy my_video.ita.mp4`

-map -0:aудаляет все аудиодорожки со входа 0.
-map 0:5вставляет 5-ю дорожку со входа 0, которая является итальянским аудио (обратите внимание на -знак NO в этом случае).


Это также очень полезно при работе с более чем одним файлом.
Например, когда:

  • извлечение аудио из одного файла
  • аудиодорожки из другого
  • субтитры и метаданные из третьего

Связанный контент