Поиск файла с последующим созданием папки
Здравствуйте, скажу сразу все мои bat файлы были очень примитивны и я очень плохо в них понимаю.
Сейчас возникла такая задача решения которой не могу понять сам буду очень признателен за помощь
Подскажите как сделать следующие
1. Найти первый фаил в папке C:\test с расширением mp4
2. Создать папку равную имени найденного mp4 файла (C:\test\name)
3. запустить команду
ffmpeg -i 123.mp4 -vf scale=320:240 -c:v libx264 -preset slow -crf 31 \name\123.mp4 -r 1 -ss 00:00:04 -t 00:00:01 -f image2 4\images%05d.png
где 123.mp4 равен имени найденного файла
где \name\123.mp4 равен созданной папке\имя найденного файла
4. дожидаться появления в папке созданной в шаге 2 файла формата .png
5. удалить найденный в шаге 1 mp4 фаил
6. Ожидать/перейти к следующему mp4 файлу и начать весь цикл заново
Заранее спасибо
|
Цитата:
Цитата Kyja
ffmpeg -i 123.mp4 -vf scale=320:240 -c:v libx264 -preset slow -crf 31 4\32212.mp4 -r 1 -ss 00:00:04 -t 00:00:01 -f image2 4\images%05d.png
где 123.mp4 равен имени найденного файла
где C:\test\name\32212.mp4 равен созданной папке\имя найденного файла »
|
В команде нет «C:\test\name\32212.mp4». Проверьте её.
|
Извиняюсь поставил корректный пример
3. запустить команду
ffmpeg -i 123.mp4 -vf scale=320:240 -c:v libx264 -preset slow -crf 31 \name\123.mp4 -r 1 -ss 00:00:04 -t 00:00:01 -f image2 4\images%05d.png
где 123.mp4 равен имени найденного файла
где \name\123.mp4 равен созданной папке\имя найденного файла
|
Цитата:
Цитата Kyja
Извиняюсь поставил корректный пример
3. запустить команду
ffmpeg -i 123.mp4 -vf scale=320:240 -c:v libx264 -preset slow -crf 31 \name\32212.mp4 -r 1 -ss 00:00:04 -t 00:00:01 -f image2 4\images%05d.png
где 123.mp4 равен имени найденного файла
где \name\32212.mp4 равен созданной папке\имя найденного файла »
|
Понятней не стало. Почему в одной и той же команде имя найденного файла сначала одно, затем тут же — другое?
Итак, давайте уточним ещё раз.
Цитата:
1. Найти первый фаил в папке C:\test с расширением mp4
|
Например, первым нашли файл C:\test\bla-bla-bla.mp4.
Цитата:
2. Создать папку равную имени найденного mp4 файла (C:\test\name)
|
Создаём каталог C:\test\bla-bla-bla.
Цитата:
3. запустить команду
ffmpeg -i 123.mp4 -vf scale=320:240 -c:v libx264 -preset slow -crf 31 \name\32212.mp4 -r 1 -ss 00:00:04 -t 00:00:01 -f image2 4\images%05d.png
где 123.mp4 равен имени найденного файла
где \name\32212.mp4 равен созданной папке\имя найденного файла
|
Исполняем команду:
Код:
ffmpeg.exe -i bla-bla-bla.mp4 -vf scale=320:240 -c:v libx264 -preset slow -crf 31 \bla-bla-bla\bla-bla-bla.mp4 -r 1 -ss 00:00:04 -t 00:00:01 -f image2 4\images%05d.png
Цитата:
4. дожидаться появления в папке созданной в шаге 2 файла формата .png
|
Зачем ждать появления файла? Пока не отработает ffmpeg.exe — управление в пакетный файл не вернётся.
Цитата:
5. удалить найденный в шаге 1 mp4 фаил
|
Удаляем файл C:\test\bla-bla-bla.mp4.
Цитата:
6. Ожидать/перейти к следующему mp4 файлу и начать весь цикл заново
|
Переходим к обработке следующего файл *.mp4.
Так?
|
Цитата:
Цитата Iska
Зачем ждать появления файла? Пока не отработает ffmpeg.exe — управление в пакетный файл не вернётся. »
|
Не знал этого момента да тогда конечно ждать появления не надо.
Да все совершенно верно как Вы описали
|
Код:
@echo off
setlocal enableextensions enabledelayedexpansion
set sSourceFolder=c:\name
pushd "%sSourceFolder%" && (
for %%i in ("*.mp4") do (
echo [%%~i]
2>nul md "%%~ni"
ffmpeg.exe -i %%~i -vf scale=320:240 -c:v libx264 -preset slow -crf 31 \%%~ni\%%~i -r 1 -ss 00:00:04 -t 00:00:01 -f image2 4\images%05d.png
)
popd
) || (
echo Can't find source folder [%sSourceFolder%].
exit /b 1
)
endlocal
exit /b 0
Но работать не работает, разбирайтесь с параметрами команды ffmpeg (мне разбираться методом обратной инженерии, что и как именно Вы хотели получить, и как надо было делать на самом деле, желания нет).
|
Огромное спасибо все работает!
|
Время: 13:44.
© OSzone.net 2001-