Вчера мне нужно было записать звуковое сопровождение из нескольких avi видеофайлов в формате mp3, чтоб сохранить на диске и потом слушать. (кстати, это был набор Intermediate to Advanced Linux Series от CBTnuggets, 24 видео файла, если кому нужно, могу дать ссылку на Улитке, а если у вас есть другие linux курсы от CBTnuggets, поделитесь, плз, со мной).
Средствами linux это делается довольно просто, тем более, что пакет transcode с набором самых популярных модулей я уже установил чуть раньше. Кроме того, нам потребуется программа avinfo, при помощи которой мы получим значение play time для каждого avi файла.
1. Все видеофайлы помещаем в одну директорию, и там же создаем примерно такой скрипт:
при помощи цепочки из трех команд мы получаем и форматируем значение play time для каждого avi файла.
это значение мы и присваиваем переменной time, которая используется в нашем скрипте.
Частоту и битрейт конечного файла можно выбрать как угодно, в зависимости от предпочтений и качества исходного материала, в моем случае это 44100Hz и 96kbps
В зависимости от размера, количества файлов и мощности вашего компьютера, времени может потребоваться от нескольких минут до нескольких часов. Но теперь у нас все автоматизировано...
p.s. transcode по какой-то причине не хочет выходить из цикла, если не указать play time для файла явно, а продолжавет работать дальше, руководствуясь своими представлениями о его значении... Потому и приходится дополнительно использовать avinfo. Кстати, avinfo оказалась достаточно интересной и сама по себе, мне кажется я знаю, как использовать ее на благо посетителей Улитки...
Средствами linux это делается довольно просто, тем более, что пакет transcode с набором самых популярных модулей я уже установил чуть раньше. Кроме того, нам потребуется программа avinfo, при помощи которой мы получим значение play time для каждого avi файла.
1. Все видеофайлы помещаем в одну директорию, и там же создаем примерно такой скрипт:
HTML Code:
#!/bin/bash -x for file in *.avi do time=$(/sbin/avinfo $file|grep audio|awk -F' ' {'print $3'}) /usr/bin/transcode -x null,avi -i $file -c $time -y null,lame -E 44100 -b 96 -o /path/to/files/$file done
HTML Code:
/sbin/avinfo file.avi|grep audio|awk -F' ' {'print $3'}
Частоту и битрейт конечного файла можно выбрать как угодно, в зависимости от предпочтений и качества исходного материала, в моем случае это 44100Hz и 96kbps
В зависимости от размера, количества файлов и мощности вашего компьютера, времени может потребоваться от нескольких минут до нескольких часов. Но теперь у нас все автоматизировано...
p.s. transcode по какой-то причине не хочет выходить из цикла, если не указать play time для файла явно, а продолжавет работать дальше, руководствуясь своими представлениями о его значении... Потому и приходится дополнительно использовать avinfo. Кстати, avinfo оказалась достаточно интересной и сама по себе, мне кажется я знаю, как использовать ее на благо посетителей Улитки...
Comment