
Как удалить звуковую дорожку из видеофайла с помощью 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 в этом случае).
Это также очень полезно при работе с более чем одним файлом.
Например, когда:
- извлечение аудио из одного файла
- аудиодорожки из другого
- субтитры и метаданные из третьего