Пакетное преобразование с помощью avidemux
Мне удалось конвертировать AVI файлы в MP4 с помощью Avidemux, и результат полностью удовлетворительный. Поскольку у меня много файлов для конвертации, я хотел бы конвертировать их с помощью терминала. Я нашел скрипт
#!/bin/bash
VIDEOCODEC="Xvid"
AUDIOCODEC="MP3"
for FIL in `ls *mp4 | sort` ; do
avidemux2 --video-codec $VIDEOCODEC --audio-codec $AUDIOCODEC --force-alt-h264 --load "$FIL" --save ${FIL%.*}.avi --quit
done
со страницы http://www.avidemux.org/admWiki/doku.php?id=tutorial:batch_processing
но я в конечном итоге с ошибкой
./scriptAvidemuxBatch: line 5: avidemux2: command not found
Я получаю что-то работающее, когда меняю
avidemux2 --video-codec $VIDEOCODEC --audio-codec $AUDIOCODEC --force-alt-h264 --load "$FIL" --save ${FIL%.*}.mp4 --quit
от
avidemux --video-codec $VIDEOCODEC --audio-codec $AUDIOCODEC --force-alt-h264 --load "$FIL" --save ${FIL%.*}.mp4 --quit
("2" удалено), но графический интерфейс все еще появляется и запрашивает, чтобы я нажал несколько кнопок, прежде чем продолжить процесс конвертации.
Мои вопросы:
-Возможно ли изменить "avidemux2" на "avidemux" в сценарии?
-Есть ли способ включить выбор, сделанный при нажатии кнопок в скрипте, чтобы весь процесс мог быть выполнен без моего вмешательства?
1 ответ
- Да, вы правильно сделали.
- В учебнике, на который вы ссылаетесь, говорится, что "поддержка командной строки AVIdemux не позволяет вам изменять все возможные параметры", поэтому, вероятно, нет.
Avidemux - это программа с графическим интерфейсом, если вы хотите воспользоваться преимуществами bash, просто используйте терминальную программу. Поставляется с текущим * Бантом есть avconv
для этого.
Пакетный конвертер так же прост, как
for i in *.avi; do avconv -i "$i" "${i/%avi/mp4}"; done
Возможно, вы захотите добавить некоторые параметры avconv, смотрите здесь и здесь.