Удалить видео / Извлечь аудио из Ogg Theora Video в Ogg Vorbis

679
ZN13

У меня есть несколько песен в формате .ogg, но они также содержат видео (которое просто показывает обложку альбома целиком, если проигрывается в видеоплеере). Как я могу без потерь удалить видео часть файлов? Аудиоформат уже ворбис, закодированный с помощью Lavc56.60.100 libvorbis. Надеемся, что решение не включает перекодировку файла с помощью ffmpeg / avconv.

1

2 ответа на вопрос

3
ZN13

О, очевидно, есть инструмент для этого, называемый oggz-rip, я считаю, что имя пакета - либо liboggz, либо oggz-tools в зависимости от вашего дистрибутива.

Чтобы извлечь аудио из файла .ogv, вы просто:

oggz-rip -c vorbis input_video.ogv > output_audio.ogg 

Или, если вы просто хотите видео и без звука:

oggz-rip -c theora input_video.ogv > output_video.ogv 

(в качестве альтернативы команда может быть oggzrip, а не oggz-rip, в зависимости от вашего дистрибутива.)

2
flolilolilo

Если вы хотите использовать FFmpeg (например, если вы используете его регулярно и не хотите, чтобы на вашем компьютере было множество одноразовых приложений), вы можете использовать его без перекодирования :

ffmpeg -i input_video.ogv -vn -c:a copy output_audio.ogg 

( -vn: нет видео -c:a copy.: просто скопируйте аудио-поток.) Source1

ffmpeg -i input_video.ogv -an -c:v copy output_audio.ogv 

( -an: нет звука -c:v copy.: просто скопируйте видео-поток.) Source1

Или, вместо -vn/ -an, вы также можете указать потоки для копирования -map:

ffmpeg -i input_video.ogv -map 0:0 -c:a copy output_audio.ogg 

(Отображать только первый поток (из первого входного файла) для вывода) Source2

Обратите внимание, что вы можете узнать номер потока (и его содержимое) через FFmpeg:

ffmpeg -i input_video.ogv -hide_banner 

( -hide_bannerне обязательно, но результат будет проще для глаз, так как он не показывает информацию о сборке FFmpeg.)

+1 за добавление ответа ffmpeg, можете ли вы подтвердить, что он не перекодируется? ZN13 7 лет назад 0
Source1 утверждает, что «copy [...] указывает [s], что поток не должен быть перекодирован». Я регулярно использую FFmpeg с различными форматами файлов и никогда не видел, чтобы `copy` что-то перекодировал - я проверял это с помощью CPU- и disk-stats (~ 0% использования CPU и ~ 100% использования диска по сравнению с« обычным »). (повторное) кодирование) и прямое сравнение выходных данных (например, следуя http://dericed.com/2012/display-video-difference-with-ffmpegs-overlay-filter/: `ffmpeg -y -i fileA.mov -i fileB.mov -filter_complex '[1: v] format = yuva444p, lut = c3 = 128, отрицание [video2withAlpha], [0: v] [video2withAlpha] наложение [out]' -map [out] fileA-B.mov` ) flolilolilo 7 лет назад 2

Похожие вопросы