Работаем с видео

Замена звуковой дорожки

Чтобы заменить в фильме звуковую дорожку и вывести результат в файл out.avi, делаем так:

mencoder исходный_файл.avi -ovc copy -oac copy -audiofile файл_со_звуком.mp3 -o out.avi

Извлечь звуковую дорожку

Из фильма звук можно вытащить двумя способами.

  1. Вытаскивание потока без изменений. Это быстрый метод. Делается командой вида
    mplayer –dumpfile track.mp3 –dumpaudio video.avi

    где video.avi - файл с фильмом, track.mp3 - генерируемый файл звуковой дорожки.

  2. Вытаскивание потока в виде wav файла. Это медленный метод. Фильм запускается на проигрывание, и аудиопоток пишется в файл. То есть, получение звуковой дорожки будет продолжаться столько, сколько длится фильм
    mplayer -ao pcm:file=audio.wav video.avi

    Преимущество - каким бы кодеком ни был закодирован звук, можно гарантированно получить обычный wav-файл. Если компьютер медленный, и при проигрывании всё подтормаживает и заикается, wav файл всёравно получится качественным.

Выбрать звуковую дорожку

Иногда попадаются диски, на которых MPEG4-фильм записан таким образом, что перевод идёт дополнительным аудиопотоком, и по умолчанию плейер его не видит. С помощью mplayer'а этот второй звуковой поток становится доступным, если запустить фильм командой:

mplayer -aid 2 имя_файла.avi

Здесь 2 - номер потока, обычно перевод идет как второй.

Чтобы узнать, какие звуковые потоки есть в фильме, можно дать команду

 mplayer -vo null -ao null -frames 0 -v имя_файла | grep aid

Вытащить видеопоток из MKV

Вытащить видеопоток из mkv в обычный avi можно так

 mencoder ~/foo.mkv -nosound -ovc copy -of avi -o ~/foo.avi

если mencoder откажется вытаскивать видеопоток, то его можно вытащить mkvextract с параметром –raw (иначе, если извлекаемый поток в формате VC1, mkvmerge поместит вытащенный видеопоток не в элементарный VC1-видеопоток, а в AVI, который не будет воспроизводиться)

mkvextract tracks ~/foo.mkv --raw 1:~/foo.vc1 && mencoder ~/foo.vc1 -nosound -ovc copy -of avi -o ~/foo.avi

теперь mkvmerge правильно подхватит VC1 поток из этого avi.

Примечание - программы mkvextract и mkvmerge обычно располагаются в пакете mkvtoolnix.

Перекодировать AC3 в MP3

С помощью mencoder можно перекодировать AC3 в любой нужный формат, например в MP3. Для этого надо воспользоваться скриптом aconvert.sh, который лежит в каталоге TOOLS в дереве исходников mplayer.

aconvert.sh <"input file"> <"output file"> <"options">

Чтобы переконвертировать AC3 в MP3, достаточно ввести

aconvert.sh sound.ac3 sound.mp3

и в результате получится MP3 файл с битрейтом 128Кбит/сек.

Код скрипта aconvert.sh

aconvert.sh
#!/bin/sh	
# Author: Jonas Jermann
# Description: A hack to allow mencoder to encode from an audio only file
if [ "$1" = "" ]; then
    echo "Usage: $0 <\"input file\"> <\"output file\"> <\"options\">"
    exit 0
fi
options=${3:-"-oac mp3lame"}
mencoder -demuxer rawvideo -rawvideo w=1:h=1 -ovc copy -of rawaudio -endpos `mplayer -identify $1 -frames 0 2>&1 | grep ID_LENGTH | cut -d "=" -f 2` -audiofile $1 -o $2 $options $1
rabotaem_s_video.txt · Последние изменения: 2013/12/25 11:28 (внешнее изменение)
GNU Free Documentation License 1.3
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0 Яндекс.Метрика