Выполнить команду для каждого файла в каталоге

Я конвертирую все свои видеофайлы в WebM, чтобы значительно уменьшить объем используемого места на жестком диске. Для этого я использую программу «ffmpeg», для которой требуется входной и выходной файлы. Поскольку процесс конвертирования занимает много времени, я хочу запускать его день и ночь для каждого видеофайла в папке с видео, поэтому мне не нужно вручную делать это самостоятельно.

По самому googling я нашел способы сделать это, но выход будет 1 большой файл. Может ли кто-нибудь объяснить мне, как я автоматически конвертирую «video1.avi» в «video1.webm» и «video2.avi» в «video2.webm» и т. Д. И т. Д.?

1
задан 15 August 2014 в 01:52

2 ответа

Ниже сценария python для выполнения задания:

#!/usr/bin/env python3

import os
import subprocess

sourcedir = "/path/to/sourcedirectory"

for file in os.listdir(sourcedir):
    name = file[:file.rfind(".")]
    subprocess.call(["fmpeg", "-i", sourcedir+"/"+name+".avi", sourcedir+"/"+name+".webm"])

С помощью subproces.call () скрипт будет продолжать работу только при следующем преобразовании, когда последний закончен.

Использовать:

Скопировать сценарий в пустой текстовый файл, установить исходный каталог ваших файлов, сохранить его как convert.py и запустить его командой

python3 /path/to/convert.py
1
ответ дан 24 May 2018 в 04:38

Вы также можете использовать мое бесплатное приложение. Он называется dmMediaConverter, и это простой интерфейс для ffmpeg. Для вашей потребности вы должны использовать опцию bulk, затем отбросить все файлы, которые вам нужны, и выбрать соответствующие параметры. Именование для выходных файлов выполняется автоматически. Yoiu должен загрузить его со ссылкой ниже, поскольку тот, который находится в программном центре Ubuntu, является старым. Надеюсь, вам понравится. http://dmsimpleapps.blogspot.ro/2014/04/dmmediaconverter.html

0
ответ дан 24 May 2018 в 04:38

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

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