Как я транскодирую все файлы в каталоге с ffmpeg

Я желаю сделать сценарий, чтобы транскодировать все файлы без потерь от моей камеры до 3mb/s и изменить кодек на h.264. Я нашел команду, которая экспортирует файлы как один большой файл, но я хочу что-то, что сохранит имя и просто поместит выводы в другой каталог. Поместите примечания, которые описывают то, что каждая часть команды делает так, я могу изменить ее для своих потребностей.

Править

Это работает:

for file in *.avi; do ffmpeg -i "$file" "${file%.avi}".webm; done

я просто хочу знать то, что каждая часть делает так, я могу изменить ее для своих потребностей.

0
задан 21 November 2015 в 23:34

1 ответ

for file in *.avi; do ffmpeg -i "$file" "${file%.avi}".webm; done

Это - Bash "для цикла" и является большим для повторения задач. Раздел разделом:

for file in *.avi;

file станет переменной в следующем разделе, который будет относиться к каждому конкретному avi в текущем каталоге для каждого последовательного цикла.

Что настроить:

  • file мог быть переименован примерно во что-либо: i и f кажется, являюсь наиболее часто используемым.

  • Можно измениться *.avi к любому формату ввода Вам нужно, такой как *.mkv.

do ffmpeg -i "$file" "${file%.avi}".webm;

Это будет работать ffmpeg для каждого avi. Часть в фигурных скобках использует расширение параметра для удаления .avi часть имени файла. Например, если avi файл называют dog.avi, затем вывод назовут dog.webm. Если Вы просто используете "$file.webm" для вывода затем вывод закончился бы как dog.avi.webm.

Что настроить:

  • Можно добавить любого ffmpeg опции, как обычно.

  • %. часть должна использовать то же расширение в качестве в for file in раздел, или Вы могли измениться %.avi кому: %.* как подстановочный знак.

  • .webm может быть изменен на любой выходной формат контейнера, в котором Вы нуждаетесь.

Если Вы хотите, чтобы новые файлы были произведены к названному каталогу newvids, затем сделайте новый каталог и измените команду на: "newvids/${file%.avi}.webm"

done

Это говорит циклу, что команда закончилась, и теперь $file может относиться к следующему avi.

3
ответ дан 30 September 2019 в 03:20

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

Похожие вопросы: