Извлекаем звуковую дорожку из видео-файла

Dec 19, 2011 21:40



в консоли набрать ffmpeg -i video_in.avi audio_out.mp3

или вставить в меню наутилуса:

1. Устанавливаем пакет nautilus-actions
2. Запускаем Система/Параметры/настройка действий в Nautilus
3. Жмем кнопку “Добавить”
4. Заполняем поля
5. Изменяем профайл Main
6. На закладке “Actions” указываем путь /usr/bin/convert.sh
7. Там же указываем аргументы: %d/%f
8. На закладке “Условия” указываем шаблоны файлов: *.avi ; *.flv ; *.iflv ; *.mpg ; *.mpeg; *.wmv
9. Размещаем в /usr/bin ниже прилагаемый шелл-скрипт convert.sh
10. Размещаем в /usr/share/convert.sh прилагаемый awk-скрипт convert.awk

Для работы скрипта требуются пакеты mplayer, mencoder, xdialog.

Теперь в контекстном меню для указанных файлов появится новый пункт меню. Звуковая дорожка видео-ролика появится после отработки скрипта в том же каталоге, что и видео-файл. Название аудиофайла будет такое же, как у видео, с добавлением расширения .mp3.

Теперь, собственно, сам скрипт convert.sh:

#!/bin/bash
#
FAVI="$*"
mkfifo /tmp/extractmp3
mencoder -ovc frameno -oac mp3lame -o /tmp/tmp.avi "$FAVI" 2>&1|awk -f /usr/share/convert.sh/convert.awk > /tmp/extractmp3 &
Xdialog --title "Extracting" --gauge "Извлечение звуковой дорожки" 0 0 0 < /tmp/extractmp3
rm -f /tmp/extractmp3
mplayer /tmp/tmp.avi -dumpaudio -dumpfile "$FAVI".mp3
rm -f /tmp/tmp.avi

И скрипт convert.awk:

BEGIN{RS="\r";}
{
s="";
if ($4=="(") {s=$5;} else {s=$4;}
if ( s ~ /%/ ) {
sub(/\(/, "", s);
sub(/%\)/, "", s);
print s;
}
}

команды, утилита, config, конвертация, audio, linux, скрипты, ffmpeg, video

Previous post Next post
Up