Я желаю сделать сценарий, чтобы транскодировать все файлы без потерь от моей камеры до 3mb/s и изменить кодек на h.264. Я нашел команду, которая экспортирует файлы как один большой файл, но я хочу что-то, что сохранит имя и просто поместит выводы в другой каталог. Поместите примечания, которые описывают то, что каждая часть команды делает так, я могу изменить ее для своих потребностей.
Править
Это работает:
for file in *.avi; do ffmpeg -i "$file" "${file%.avi}".webm; done
я просто хочу знать то, что каждая часть делает так, я могу изменить ее для своих потребностей.
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.