Пакетное преобразование с помощью 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 ответ

  1. Да, вы правильно сделали.
  2. В учебнике, на который вы ссылаетесь, говорится, что "поддержка командной строки AVIdemux не позволяет вам изменять все возможные параметры", поэтому, вероятно, нет.

Avidemux - это программа с графическим интерфейсом, если вы хотите воспользоваться преимуществами bash, просто используйте терминальную программу. Поставляется с текущим * Бантом есть avconv для этого.

Пакетный конвертер так же прост, как

for i in *.avi; do avconv -i "$i" "${i/%avi/mp4}"; done

Возможно, вы захотите добавить некоторые параметры avconv, смотрите здесь и здесь.

Другие вопросы по тегам