Блог Олега Сердюкова

Извлечение звуковой дорожки из видео (ffmpeg)

Второй день с переменным успехом занимаюсь изучением конвертации видео под iPad. Всё было бы просто, если бы меня устроило видео с одной звуковой дорожкой, да полное отсутствие субтитров. Но мне хочется иметь возможность выбора одной из двух дорожек (русской/английской), да субтитров на двух языках. Пока получается всё в урезанном варианте.

Пока поделюсь рецептом, как из видеофайла извлечь конкретную аудиодорожку и записать её в формате, подходящем для iPad (AAC-LC audio up to 160 Kbps, 48kHz, stereo audio).

Для этого нужен ffmpeg, его я ставлю через Homebrew (но вполне можно использовать другой менеджер пакетов, например, MacPorts):

$ brew install ffmpeg

В файле может быть несколько потоков (например, видео, несколько аудио и субтитры). Получение информации по всем потокам:

$ ffmpeg -i Dexter.S02E01.RUS.BDRip.XviD.AC3.-HELLYWOOD.avi
  Duration: 00:53:20.11, start: 0.000000, bitrate: 1952 kb/s
    Stream #0.0: Video: mpeg4, yuv420p, 720x400 [PAR 1:1 DAR 9:5], 23.98 tbr, 23.98 tbn, 23.98 tbc
    Stream #0.1: Audio: ac3, 48000 Hz, 5.1, s16, 256 kb/s

В данном случае в файле находится видео (0.0) и аудио в формате AC3 (0.1). Извлекаем аудио и преобразуем его:

$ ffmpeg -i Dexter.S02E01.RUS.BDRip.XviD.AC3.-HELLYWOOD.avi \
	-map 0:1 -acodec libfaac -ar 44100 -ac 2 -ab 128k -threads 0 \
	Dexter.s02e01.RUS.aac

Процесс занял для данного файла 99 секунд, на выходе я получил аудиодорожку в формате AAC.

О дальнейших своих изысканиях буду вас информировать.

Comments