Как выполнить пакетную обработку каталога файлов mp4 для удаления их метаданных? - PullRequest
0 голосов
/ 09 февраля 2019

Привет, поэтому я конвертирую один файл mp4 с помощью ffmpeg, чтобы удалить все метаданные из файла mp4, с помощью следующей команды:

ffmpeg -i test.mp4 -map_metadata -1 -c:v copy -c:a copy out.mp4

Это работает нормально, но я хочу сценарий bash, который автоматически удалит все метаданныекаталог, содержащий файлы mp4, с минимальным взаимодействием.

Может кто-нибудь помочь мне с этим сценарием?

Ответы [ 2 ]

0 голосов
/ 09 февраля 2019
for f in *.mp4; do ffmpeg -i "$f" -map_metadata -1 -c:v copy -c:a copy "fixed_$f"; done

Bash заменяет *.mp4 именами всех соответствующих файлов в текущем каталоге.Каждый шаг цикла проходит, f содержит одно из имен файлов.

Или используйте подкаталог:

mkdir converted
for f in *.mp4; do ffmpeg -i "$f" -map_metadata -1 -c:v copy -c:a copy "converted/$f"; done
0 голосов
/ 09 февраля 2019

Здесь перечислены все файлы (и только файлы) в текущем каталоге:

for /r %i in (*) do echo %i

Также, если вы запускаете эту команду в пакетном файле, вам нужно удвоить знак%.

for /r %%i in (*) do echo %%i

Это будет примерно так.Создайте файл, назовите его test.cmd и скопируйте его в файл.

for %%f in (*.mp4) do (
    ffmpeg -i %%f -map_metadata -1 -c:v copy -c:a copy %%~nf-out.mp4
)

-n работает как замена только части имени.

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