|
dionus108
Стаж: 15 лет 4 месяца Сообщений: 167
|
dionus108 ·
25-Дек-14 10:04
(10 лет 9 месяцев назад)
AlistRain писал(а):
66295921файлы или папки, или файлы и папки вместе?
Например: только файлы, только папки (1 или много, с подкаталогами или нет), вместе файлы и папки.
Наверное оптимальный вариант сделать так - создать отдельный батник, который бы все те файлы и папки, которые ему на вход попадают, складывал в виде текстовых ссылкок в папку "очередь задач". Например файл с именем "датавремяN.txt" содержит строку с путем к файлу. А файл с именем "датавремяM.txt" содержит строку с путем к папке (оканчивается на "\"). А уже батник-кодировщик мог бы пофайлово пробегать эту папку, определять с чем имеет дело (файлом или папкой), запускать кодирование, и при успешном появлении готового файла в папке назначения удалять текстовый файлик из папки-очереди-задач.
Если кодировать надо регулярно, то можно батник кодировщик зациклить, чтобы он постоянно сканировал очередь задач и выполнял ее.
Могу позже попробовать сварганить скриптик для такого варианта (с папкой-очередью).
|
|
FrostRoman
Стаж: 13 лет 3 месяца Сообщений: 5
|
FrostRoman ·
25-Дек-14 14:57
(спустя 4 часа)
Ой, сколько заманчивых предложений) Попробую объяснить более понятно что мне требуется. Есть папка F:\DOWNLOADS, в которую скачиваются фильмы, сериалы и т.д. Сериалы обычно идут в папках, фильмы - нет. Какие-то файлы после просмотра удаляются, какие-то остаются на раздаче. Идеальный вариант: в папке F:\DOWNLOADS лежит батник, на который можно кинуть файл, или папку с файлами (не обязательно вместе, не обязательно чтобы сразу можно было несколько папок на него кидать; можно два отдельных батника для файлов и для папок с файлами) и на выходе получить готовые файлы, допустим, в корне диска. Дополнительно, если это возможно, было бы неплохо, если бы батник создавал в корне диска папку с таким же названием как у той, которую на него кидаешь и складывал готовые файлы в нее. Ну что бы не смешивать все в одну кучу. Батник для файлов от AlistRain работает, с этим вопрос решен. Спасибо огромное. Еще бы такой же для папок...
|
|
dionus108
Стаж: 15 лет 4 месяца Сообщений: 167
|
dionus108 ·
28-Дек-14 03:58
(спустя 2 дня 13 часов, ред. 28-Дек-14 08:24)
FrostRoman писал(а):
66299006Ой, сколько заманчивых предложений) Идеальный вариант: в папке F:\DOWNLOADS лежит батник, на который можно кинуть файл, или папку с файлами (не обязательно вместе, не обязательно чтобы сразу можно было несколько папок на него кидать; можно два отдельных батника для файлов и для папок с файлами) и на выходе получить готовые файлы, допустим, в корне диска.
Самая большая загвоздка в том, что при перетягивании мышкой (в отличие от передачи в консольном режиме) имена папок передаются без наклонной черты в конце. Поэтому нужно делать какие-то манипуляции, чтобы определить, с чем имеем дело - с файлом или папкой. Возможно есть какие-то более элегантные средства для этого, но в принципе работает и такой батник (комментарии внутри):
DragDropSingle.bat
Код:
@echo off
REM Скрипт для обработки перетянутого методом Drag&Drop файла или папки.
REM Этот скрипт анализирует один (первый) аргумент, переданный через аргументы командной строки, и выявляет является ли он именем файла или папки.
REM Если файл или папка перетягиваются на ярлык, а не на сам батник, то в свойствах ярлыка может понадобиться очистить значение "Рабочая папка" -
REM тогда скрипт будет запускаться в папке откуда перетягивались файлы. REM На случай если аргумент передается не перетаскиванием а вручную, то проверяем правильность задания имени файла/папки
if not exist %1 (
echo Файл %1 не найден.
goto FINISH
) REM Запоминаем начальную папку (откуда перетягиваются файлы) в переменную %startdir%
set startdir="%CD%"
REM Пробуем перейти в папку с именем %1
pushd %1
REM Если зайти не удалось (остались в изначальной папке) то обрабатываем %1 как файл
if "%CD%"==%startdir% (
echo %1 является файлом. Запускаем скрипт file.bat для его обработки.
file.bat %%i
) else (
REM Если же получилось зайти в папку, то
echo %1 является папкой. Запускаем внутри этой папки скрипт folder.bat для обработки всего содержимого папки
folder.bat %%i
)
REM Вовращаемся в предыдущую папку
popd
REM Если скрипты file.bat и folder.bat переходят в другие папки и не возвращаются в ту, в которой они были запущены, то следует заменить команды pushd и popd командами chdir с соответсвующими аргументами. :FINISH
Для универсальности (чтобы можно было из любого места файлы перетягивать) этот батник можно разместить где-угодно, а на рабочем столе создать ярлык на него.
Ну а для еще большего удобства можно создать батник DragDrop.bat следующего содержания:
DragDrop.bat
Код:
REM Задаем путь к папке куда будут складываться готовые файлы, и создаем ее.
set OUTDIR=e:\Converted\
md %OUTDIR%
REM Цикл для перебора всех имен файлов и папок, поданых на вход батника
for %%i in (%*) do (
call DragDropSingle.bat %%i
)
Создать ярлык для него вместо первого ярлыка - и теперь все будет работать если перетягивать на него сразу много файлов и папок. Только вызываемый DragDropSingle.bat надо либо поместить в папку Windows, либо в строке вызова прописать полный путь к нему, например D:\Batniki\DragDropSingle.bat. Иначе он не будет найден.
Ну и соответсвенно также надо поступить с батниками, которые вызываются для собственно конвертирования файла и папки (file.bat и folder.bat).
Их примерное содержание может быть следующим:
file.bat
Код:
rem В первом аргументе передается имя файла, а во втором - путь куда сохранять результат
if "%~x1"==".avi" convertavi "%1" "%2%1.avi"
if "%~x1"==".mkv" convertmkv "%1" "%2%1.avi"
if "%~x1"==".mp4" convertmp4 "%1" "%2%1.avi"
folder.bat
Код:
rem В первом аргументе передается путь, куда сохранять готовые файлы.
md %OUTDIR%%1
for %%f in (*.*) DO (
call file.bat "%%f" "%OUTDIR%%1\"
)
|
|
HortonEN
Стаж: 17 лет 8 месяцев Сообщений: 6333
|
HortonEN ·
30-Дек-14 07:18
(спустя 2 дня 3 часа)
dionus108 писал(а):
66326930при перетягивании мышкой (в отличие от передачи в консольном режиме) имена папок передаются без наклонной черты в конце. Поэтому нужно делать какие-то манипуляции, чтобы определить, с чем имеем дело - с файлом или папкой. Возможно есть какие-то более элегантные средства для этого
Можно чуть короче определять. Через exist.
Код:
if EXIST "%~1\" echo This object is Directory
Дополнительные тильда и кавычки ─ для корректной обработки (если есть) пробелов в имени.
Можно ещё dir использовать и брать его errorlevel.
Код:
dir /ad %1 >nul
if %ERRORLEVEL% EQU 0 echo This object is Directory
|
|
AlistRain
Стаж: 13 лет 1 месяц Сообщений: 536
|
AlistRain ·
30-Дек-14 12:08
(спустя 4 часа, ред. 30-Дек-14 12:08)
FrostRoman писал(а):
66299006Батник для файлов от AlistRain работает, с этим вопрос решен
ok
FrostRoman писал(а):
66299006Дополнительно, если это возможно, было бы неплохо, если бы батник создавал в корне диска папку с таким же названием как у той, которую на него кидаешь и складывал готовые файлы в нее
создал папку g:\FrostRoman_p66294383 (аналог f:\downloads) в ней папку "1 2" (аналог "TV name") в ней файло "sub1 01.avi" "sub1 02.avi",
на bat (может лежать где попало, у меня в папке FrostRoman_p66294383) перетягиваем папку "1 2"
Код:
@echo off
rem setlocal enabledelayedexpansion rem прямое указание на файл ffmpeg.exe, если не установлен путь к нему в переменной среде Path
set ffmpeg="g:\ffmpeg.exe" rem переход в перетаскиваемую папку
cd /d "%*" rem через cd вытаскиваем имя папки в переменную
For /F "delims=" %%F in ('cd') do (
rem set curfold=%%~nF
set mkfold=%%~dF\%%~nF
) rem echo %CD%
rem echo %curfold%
echo %mkfold%
rem создаём папко
if not exist "%mkfold%" md "%mkfold%" rem кодируем все файлы из папки
FOR %%I IN (%*\*.*) DO (
echo %%I
%ffmpeg% -hide_banner -i "%%~dpnxI" -map 0:0 -map 0:1 -c:v copy -c:a libmp3lame -ar 48000 -ab 256k -ac 2 "%mkfold%\%%~nxI"
)
pause
вроде всё работает для всех пробелов и англ названий
но нужно у знающих уточнить более оптимальное решение
|
|
FrostRoman
Стаж: 13 лет 3 месяца Сообщений: 5
|
FrostRoman ·
31-Дек-14 11:45
(спустя 23 часа)
AlistRain, батник для папок работает как заказывал, разве что папки по одной на него кидать надо, но это уже не принципиально. Готовые файлы складывает в папку с исходным названием. Огромное спасибо! С батниками от dionus108 пока разбираюсь. Насколько я понял, ваше предложение более универсально. После праздников буду вникать. Всем еще раз огромное спасибо за помощь! Облегчили мне жизнь многократно)
|
|
dionus108
Стаж: 15 лет 4 месяца Сообщений: 167
|
dionus108 ·
01-Янв-15 01:07
(спустя 13 часов, ред. 01-Янв-15 01:07)
HortonEN писал(а):
Можно чуть короче определять. Через exist.
Тогда все кардинально упрощается. Получается такой скрипт:
DragDrop.bat
Код:
@echo off
REM Скрипт для обработки перетянутых методом Drag&Drop файлов и папок. Этот скрипт анализирует аргументы,
REM переданные через командную строку, и выявляет является ли они именем файла или папки. REM Цикл для перебора всех имен файлов и папок, поданых на вход батника
for %%i in (%*) do (
REM Проверяем, существует ли папка с именем "%%i"
if exist "%%i\" (
echo %%i является папкой. Запускаем скрипт folder.bat для ее обработки.
folder.bat %%i
) else (
REM Если папка не найдена, то проверяем, существует ли файл с именем "%%i"
if exist "%%i" (
echo %%i является файлом. Запускаем скрипт file.bat для его обработки.
file.bat %%i
)
)
)
Теперь все уместилось в одном файле и внутри одного цикла - ведь отпала необходимость создавать переменные. А приходилось плодить батники, поскольку обнаружил интересную хитрость. Если есть необходимость менять значения переменных внутри цикла, то обычно приходится пользоваться командой setlocal enabledelayedexpansion. Но (увы) при этом командный интерпретатор "съедает" все символы "!" в значениях переменных. А ведь этот символ часто встречается в именах файлов. И вот, оказывается если вынести тело цикла в отдельный батник (или в отельную функцию, вызываемую по метке), а значения передавать и возвращать через аргументы командной строки, то можно обойтись без режима delayedexpansion. И значит спойкойно обрабатывать имена файлов, содержащих символ "!".
|
|
ASProject
 Стаж: 15 лет Сообщений: 67
|
ASProject ·
03-Янв-15 00:01
(спустя 1 день 22 часа)
Имеются файлы штук 20+ нужно вырезать 2 дороги, а всего их там 3, чего как писать?)
З.Ы. да возможно здесь это кто-то уже обсуждал,(на первой ничего на эту тему не нашел либо слеп) но перечитывать полностью 12страниц в поисках не в кайф
|
|
HortonEN
Стаж: 17 лет 8 месяцев Сообщений: 6333
|
HortonEN ·
03-Янв-15 00:54
(спустя 53 мин.)
ASProject писал(а):
66384866возможно здесь это кто-то уже обсуждал
https://rutr.life/forum/viewtopic.php?p=51341183#51341183
Принцип работы "-map" опции.
А вообще, чуть выше, у AlistRain есть 'пример'.
Код:
-i %1 -map 0:0 -map 0:1 -c:v copy -c:a libmp3lame -ar 48000 -ab 256k -ac 2 %2
Это оставление в файле видео-потока и первого аудио-потока с пережатием.
|
|
--danger--
 Стаж: 18 лет 9 месяцев Сообщений: 34
|
--danger-- ·
14-Янв-15 20:07
(спустя 11 дней, ред. 14-Янв-15 20:07)
Привет. помогите автоматизировать.
шаг 1
у всех avi из папки вытянуть первую mp3 дорогу
шаг 2
все эти mp3 дороги в папке перевести в ac3 192кб/с и понизить скорость до 23fps (напр. команда -slowdown eac3to)
Спасибо.
|
|
falcone7
Стаж: 14 лет 8 месяцев Сообщений: 874
|
falcone7 ·
16-Янв-15 20:00
(спустя 1 день 23 часа, ред. 16-Янв-15 20:00)
Имеется тюнер цифрового ТВ, которое читает с флешки видео разного формата, но отказывается воспроизводить звук AC3/. Мне подсказали что можно один клик без разбора контейнера, без синхронизации и много всего другого заменить звук в AVI файле с АС3 на МР3
doogler писал(а):
56283322Тогда в один клик лучше делать так:
1. Скачать ffmpeg и распаковать.
2. Зайти в папку bin и создать в ней новый текстовый документ.
3. Записать в нем строчку
скрытый текст
ffmpeg -i input.avi -f avi -vcodec copy -acodec libmp3lame -ar 48000 -ab 256k -ac 2 output.avi
сохранить и изменить расширение .txt на .bat
4. Положить в эту же папку свой ави, переназвав файл как input.avi .
5. Двойной клик на файл .bat .
Подождать пару минут и будет готов output.avi с mp3 дорожкой вместо ac3.
Все неплохо. Но как быть если в файле два и более аудиодорожек. Как прописать батник? Подскажите.
Тоже самое касается и MKV. (с субтитрами)
|
|
AlistRain
Стаж: 13 лет 1 месяц Сообщений: 536
|
AlistRain ·
21-Янв-15 09:04
(спустя 4 дня, ред. 21-Янв-15 09:04)
продолжение https://rutr.life/forum/viewtopic.php?p=66601979#66601979
falcone7 писал(а):
66551877Но как быть если в файле два и более аудиодорожек. Как прописать батник? Подскажите.
Тоже самое касается и MKV. (с субтитрами)
На этот батник можно перенести файлы
FOR %%I IN (%*) DO (
ffmpeg -hide_banner -i "%%~dpnxI" -c copy -c:a libmp3lame -ar 48000 -ab 128k -ac 2 -map 0 "%%~dpnI_mp3%%~xI"
)
pause
-c copy корирование всех дорог
-c:a libmp3lame пережатие всех аудио (-c:a:номер дороги для конкретной дороги)
-ar 48000 -ab 128k -ac 2 параметры аудио
-map 0 передача всех дорог в первичном порядке, позволяет избежать ошибки при одновременной обработке файлов с сабами и без (-map 0:s), недостаток будут скопированы все сабы.
этот батник можно просто запустить
FOR %%I IN (*.avi *.mkv) DO (
ffmpeg -hide_banner -i "%%~nxI" -c copy -c:a libmp3lame -ar 48000 -ab 128k -ac 2 -map 0 "%%~nI_mp3%%~xI"
)
pause
*.avi *.mkv можно добавить в набор и другие расширения
ffmpeg может испугаться сабов в mp4 или чего ещё и выдать ошибку, об этом можно написать сюда, может кто-то будет знать ответ
Вроде всё работает, проверяйте.
--Edit--
старый неправильный пост
проблема в количестве аудио дорог по умолчанию ffmpeg заберёт только одну аудио дорогу (-c copy -c:a mp3) (By default, ffmpeg includes only one stream of each type (video, audio, subtitle) present in the input files and adds them to each output file), а значит нужно указать -map 0:audio1 -map 0:audio2
falcone7 писал(а):
66551877Но как быть если в файле два и более аудиодорожек. Как прописать батник? Подскажите.
Тоже самое касается и MKV. (с субтитрами)
На этот батник можно перенести файлы
FOR %%I IN (%*) DO (
ffmpeg -hide_banner -i "%%~dpnxI" -c:v copy -c:s copy -c:a libmp3lame -ar 48000 -ab 128k -ac 2 -map 0:0 -map 0:a -map 0:s:0 "%%~dpnI_mp3%%~xI"
)
pause
-c:v copy -c:s copy корирование видое и саб дорог, можно заменить на -c copy
-c:a libmp3lame пережатие всех аудио (-c:a:номер дороги для конкретной дороги)
-ar 48000 -ab 128k -ac 2 параметры аудио
-map 0:0 видео на первое место
-map 0:a все аудио дороги после видео (-map 0:a:0 -map 0:a:2 первая и третья дорога после видео)
-map 0:s:0 первая саб дорога на последнее место (-map 0:s все саб дороги) - убираем этот ключ если сабов нет
этот батник можно просто запустить
FOR %%I IN (*.avi *.mkv) DO (
ffmpeg -hide_banner -i "%%~nxI" -c:v copy -c:s copy -c:a libmp3lame -ar 48000 -ab 128k -ac 2 -map 0:0 -map 0:a -map 0:s:0 "%%~nI_mp3%%~xI"
)
pause
*.avi *.mkv можно добавить в набор и другие расширения
Батники не универсальны, если сабы в одном файле есть, а в другом нет, то вместе их обработать с командой -map 0:s:0 не получиться. Нужно иметь два батника в одном будет -map 0:s:0 в другом нет.
т.е.:
FOR %%I IN (%*) DO (
ffmpeg -hide_banner -i "%%~dpnxI" -c:v copy -c:s copy -c:a libmp3lame -ar 48000 -ab 128k -ac 2 -map 0:0 -map 0:a - map 0:s:0 "%%~dpnI_mp3%%~xI"
)
pause
FOR %%I IN (%*) DO (
ffmpeg -hide_banner -i "%%~dpnxI" -c:v copy -c:s copy -c:a libmp3lame -ar 48000 -ab 128k -ac 2 -map 0:0 -map 0:a "%%~dpnI_mp3%%~xI"
)
pause
либо
FOR %%I IN ( *.mkv) DO (
%ff% -hide_banner -i "%%~nxI" -c:v copy -c:s copy -c:a libmp3lame -ar 48000 -ab 128k -ac 2 -map 0:0 -map 0:a - map 0:s:0 "%%~nI_mp3%%~xI"
)
pause
FOR %%I IN ( *.avi) DO (
%ff% -hide_banner -i "%%~nxI" -c:v copy -c:s copy -c:a libmp3lame -ar 48000 -ab 128k -ac 2 -map 0:0 -map 0:a "%%~nI_mp3%%~xI"
)
pause
ffmpeg может испугаться сабов в mp4 или чего ещё и выдать ошибку, об этом можно написать сюда, может кто-то будет знать ответ
--danger-- писал(а):
66529632Привет. помогите автоматизировать.
шаг 1
у всех avi из папки вытянуть первую mp3 дорогу
шаг 2
все эти mp3 дороги в папке перевести в ac3 192кб/с и понизить скорость до 23fps (напр. команда -slowdown eac3to)
Спасибо.
этот батник можно просто запустить из папки
FOR %%I IN (*.avi) DO (
ffmpeg.exe -hide_banner -i "%%~nxI" -vn -c copy -map 0:a:0 -y "%%~nI.mp3"
eac3to.exe "%%~nI.mp3" "%%~nI.ac3" -192 -changeto23.976 -25.000/-24.000
)
точную строку для кодирования ac3 (с учётом всех нюансов для кодеров) спрашивайте в теме eac3to
Пути к ffmpeg & eac должны быть прописаны в переменных ( eac3to и как им пользоваться [инструкция] -> Установка), либо указан прямой путь в батнике.
Можно узнать все детали операции, чем переводите фпс видео (или есть готовое), чем будете муксить ac3 и подходящее для него видео (или будете подключать внешнюю дорогу)?
|
|
falcone7
Стаж: 14 лет 8 месяцев Сообщений: 874
|
falcone7 ·
21-Янв-15 10:33
(спустя 1 час 28 мин., ред. 21-Янв-15 10:33)
AlistRain писал(а):
66602463продолжение https://rutr.life/forum/viewtopic.php?p=66601979#66601979
На этот батник можно перенести файлы
FOR %%I IN (%*) DO (
ffmpeg -hide_banner -i "%%~dpnxI" -c copy -c:a libmp3lame -ar 48000 -ab 128k -ac 2 -map 0 "%%~dpnI_mp3%%~xI"
)
pause
-c copy корирование всех дорог
-c:a libmp3lame пережатие всех аудио (-c:a:номер дороги для конкретной дороги)
-ar 48000 -ab 128k -ac 2 параметры аудио
-map 0 передача всех дорог в первичном порядке, позволяет избежать ошибки при одновременной обработке файлов с сабами и без (-map 0:s), недостаток будут скопированы все сабы.
этот батник можно просто запустить
FOR %%I IN (*.avi *.mkv) DO (
ffmpeg -hide_banner -i "%%~nxI" -c copy -c:a libmp3lame -ar 48000 -ab 128k -ac 2 -map 0 "%%~nI_mp3%%~xI"
)
pause
*.avi *.mkv можно добавить в набор и другие расширения
ffmpeg может испугаться сабов в mp4 или чего ещё и выдать ошибку, об этом можно написать сюда, может кто-то будет знать ответ
Вроде всё работает, проверяйте.
Извиняюсь за свою тупость, но ничего не понял. С этими батниками не очень дружу, в первый раз сталкиваюсь с ffmpeg Куда перенести, как перенести?
|
|
--danger--
 Стаж: 18 лет 9 месяцев Сообщений: 34
|
--danger-- ·
21-Янв-15 15:37
(спустя 5 часов)
AlistRain писал(а):
FOR %%I IN (*.avi) DO (
ffmpeg.exe -hide_banner -i "%%~nxI" -vn -c copy -map 0:a:0 -y "%%~nI.mp3"
eac3to.exe "%%~nI.mp3" "%%~nI.ac3" -192 -changeto23.976 -25.000/-24.000
)
точную строку для кодирования ac3 (с учётом всех нюансов для кодеров) спрашивайте в теме eac3to
Благодарю. всё получилось. использовал -slowdown для понижения фпс.
дорога будет лежать отдельно. так что на этом всё.
|
|
AlistRain
Стаж: 13 лет 1 месяц Сообщений: 536
|
AlistRain ·
21-Янв-15 16:31
(спустя 53 мин.)
falcone7 писал(а):
66603231ничего не понял.
 работали же с другим батником
falcone7 писал(а):
66551877Все неплохо.
Первый батник
В блокноте пишем
FOR %%I IN (%*) DO (
диск:\путь\ffmpeg.exe -hide_banner -i "%%~dpnxI" -c copy -c:a libmp3lame -ar 48000 -ab 128k -ac 2 -map 0 "%%~dpnI_mp3%%~xI"
)
pause
сохраняем и изменяем расширение на bat. Кладём батник к файлам. Выделяем нужные файлы (avi mkv) и переносим на батник. Получится картинка под спойлером "отработавший батник"
Второй батник
В блокноте пишем
FOR %%I IN (*.avi *.mkv) DO (
диск:\путь\ffmpeg.exe -hide_banner -i "%%~nxI" -c copy -c:a libmp3lame -ar 48000 -ab 128k -ac 2 -map 0 "%%~nI_mp3%%~xI"
)
pause
сохраняем и изменяем расширение на bat. Кладём батник к файлам. Запускаем батник. Он переберёт все avi и mkv файлы. Можно пометить нужные файлы "+" (Супер Видео+.avi, Мега Видео+.mkv) и заменить *.avi *.mkv на * +.* . Можно перебирать что-то одно — *.avi или *.mkv
Выбирайте, что Вам подходит.
--danger-- писал(а):
66605735дорога будет лежать отдельно. так что на этом всё.
Т.к. идёт пережатие mp3 -> ac3 192, решил посмотреть другие команды ffmpeg
-c:a ac3 -af asetrate=sample_rate=24000/25025*48000,aresample=osr=48000:resampler=soxr out.ac3 качество полный песец
-vf setpts=1.043*PTS -af asetpts=1.043*PTS даёт нужный результат, но упорно не хочет работать только для аудио. Т.к. ffmpeg мне не покорился, то на этом остановимся.
|
|
S.c.a.r.a.b.e.y
 Стаж: 13 лет Сообщений: 208
|
S.c.a.r.a.b.e.y ·
29-Янв-15 14:50
(спустя 7 дней)
Здравствуйте! помогите
1)Удалить из avi файла две или три аудиодорожки
2)Первой добавить аудиодорожку из другой папки
|
|
HortonEN
Стаж: 17 лет 8 месяцев Сообщений: 6333
|
HortonEN ·
30-Янв-15 04:04
(спустя 13 часов)
S.c.a.r.a.b.e.y писал(а):
666945421)Удалить из avi файла две или три аудиодорожки
2)Первой добавить аудиодорожку из другой папки
Без поименования внешних дорожек сложно экстрасенсить. =))
Как они у Вас называются и как к ним обращаться никто не знает.
В общем случае скелет батника такой:
Код:
FOR %%i IN (*.avi) DO
ffmpeg -i %%i -map 0 -i E:\OtherPath\Audio\%%~ni.mp3 -map 1 -vcodec copy -acodec copy %%~ni_remuxed.avi
но надо "дорабатывать"...
|
|
AlistRain
Стаж: 13 лет 1 месяц Сообщений: 536
|
AlistRain ·
30-Янв-15 07:03
(спустя 2 часа 59 мин., ред. 30-Янв-15 07:03)
HortonEN писал(а):
66701410но надо "дорабатывать"...
-map 0 передаст все дороги, а -map 0:0 (0:v) только видео, ы  .
Нужно ли оставлять другие дороги, если они есть (из 1 не понятно), может это ремукс с десятком дорог.
А так да,
-i %%i -i Audio\%%~ni.mp3 -map 0:0 -map 1:0 -c copy %%~ni_remuxed.avi
только видео дорога 1 файла + аудио из внешнего mp3
|
|
S.c.a.r.a.b.e.y
 Стаж: 13 лет Сообщений: 208
|
S.c.a.r.a.b.e.y ·
30-Янв-15 10:16
(спустя 3 часа, ред. 30-Янв-15 10:16)
Всего в файле три аудиодорожки и для облечения задачи сделал одинаковым название файлов(1.avi ,1.mp3,...)
и переместил все в одну папку и удалять нужно две первые аудиодорожки или все три аудиодорожки
|
|
AlistRain
Стаж: 13 лет 1 месяц Сообщений: 536
|
AlistRain ·
30-Янв-15 10:58
(спустя 41 мин., ред. 30-Янв-15 10:58)
S.c.a.r.a.b.e.y писал(а):
66702756Всего в файле три аудиодорожки ... и удалять нужно две первые аудиодорожки или все три аудиодорожки
*рыдает кровавыми слезами* 
0 видео
1 аудио1rus
2 аудио2rus
3 аудио3hz
структура файлов одинакова 1+2+3 или где-то 1+2, где-то 1+2+3?
что удаляем? аудио1+2 и сохраняем аудио3? или удаляем аудио1+2+3?
если только видео + аудио внешняя ( или все три аудиодорожки)
Код:
FOR %%I IN (*.avi) DO (ffmpeg.exe -hide_banner -i "%%~nxI" -i "temp\%%~nI.mp3" -c copy -map 0:0 -map 1:0 "%%~nI_new.avi")
temp\%%~nI.mp3 подпапка (temp - любое имя) с mp3 имеющими имя как у видео, либо -i "%%~nI.mp3" если файлы в той же папке где видео
если только видео + аудио внешняя + аудио3 ( две первые аудиодорожки)
Код:
FOR %%I IN (*.avi) DO (ffmpeg.exe -hide_banner -i "%%~nxI" -i "temp\%%~nI.mp3" -c copy -map 0:0 -map 1:0 -map 0:3 "%%~nI_new.avi")
temp\%%~nI.mp3 подпапка (temp - любое имя) с mp3 имеющими имя как у видео, либо -i "%%~nI.mp3" если файлы в той же папке где видео
Вроде всё работает, скринить не буду.
|
|
S.c.a.r.a.b.e.y
 Стаж: 13 лет Сообщений: 208
|
S.c.a.r.a.b.e.y ·
30-Янв-15 11:21
(спустя 22 мин.)
Большое спасибо ! AlistRain Всё работает
|
|
HortonEN
Стаж: 17 лет 8 месяцев Сообщений: 6333
|
HortonEN ·
30-Янв-15 11:30
(спустя 9 мин.)
AlistRain писал(а):
66701878-map 0 передаст все дороги, а -map 0:0 (0:v) только видео, ы
Да. Это я описался.
Конечно, map 0:0.
|
|
AlistRain
Стаж: 13 лет 1 месяц Сообщений: 536
|
AlistRain ·
30-Янв-15 11:38
(спустя 8 мин.)
S.c.a.r.a.b.e.y писал(а):
66703299Всё работает
Так какой вариант был нужен? мне всё ещё интересно
|
|
S.c.a.r.a.b.e.y
 Стаж: 13 лет Сообщений: 208
|
S.c.a.r.a.b.e.y ·
30-Янв-15 11:50
(спустя 12 мин.)
|
|
Xlorid
 Стаж: 17 лет Сообщений: 201
|
Xlorid ·
08-Фев-15 10:02
(спустя 8 дней)
Подскажите скрипт для массового изменения формата дорожки (ac3 в mp3) не извлекая из контейнера для видеофайлов *.avi а так же *.mkv
|
|
AlistRain
Стаж: 13 лет 1 месяц Сообщений: 536
|
AlistRain ·
09-Фев-15 08:30
(спустя 22 часа)
falcone7
Цитата:
C:\Users\Admin\Desktop\New Folder\AC3inMP3\ffmpeg\bin\ffmpeg.exe
Путь с пробелами надо заключить в кавычки, никогда не работайте из системных папок или с рабочего стола.
в спойлере четыре отработавших батника
1) g:\incoming\ffmpeg.exe FOR %%I IN (%*) DO (
2) g:\incoming\ffmpeg.exe FOR %%I IN (*.mkv) DO (
3) C:\Documents and Settings\Core\Local Settings\temp\ffmpeg.exe FOR %%I IN (%*) DO (
4) C:\Documents and Settings\Core\Local Settings\temp\ffmpeg.exe FOR %%I IN (*.mkv) DO (
И я не знаю как сделать понятнее, ждите — тут есть понятно объясняющие люди.
Нужно запретить продавать десктопы и ноуты без сдачи книги Фигурнова (1996 года пойдёт) Xlorid
falcone7 упоролся этой проблемой в https://rutr.life/forum/viewtopic.php?p=66551877#66551877 и пришёл к решению https://rutr.life/forum/viewtopic.php?p=56283322#56283322 которое у него пошло, однако не пошло моё (см. выше)
|
|
Thhor2
Стаж: 15 лет 1 месяц Сообщений: 261
|
Thhor2 ·
25-Фев-15 20:35
(спустя 16 дней, ред. 28-Фев-15 00:03)
Xlorid писал(а):
66803161Подскажите скрипт для массового изменения формата дорожки (ac3 в mp3) не извлекая из контейнера для видеофайлов *.avi а так же *.mkv
Это не скриптом! Это! Волшебной палочкой!
dionus108 писал(а):
62896334
Thhor2 писал(а):
Хорошо бы какой GUI типа таблицы что ли, этакий комбайн, чтоб показывал содержимое контейнеров и оставалось только:
Если требуется смотреть содержимое контейнеров, то это уже подразумевает самые разнообразные варианты в каждом из файлов - а следовательно автоматизации уже не получится , поскольку
Thhor2 писал(а):
та же морока, все файлы перебираешь по одному
_______
Thhor2 писал(а):
GUI типа таблицы
Это как? Таблица в которой сразу несколько видеофайлов загрузить можно? Так все равно придется по одному клацать, поскольку в одном файле будет 4 аудиодорожки и 7 субтиров, а в другом 3 аудиодорожки и 9 субтитров.
Ерунда! Скомпоновать табличный вид, с отображением дорожек и их описаний, - никакая не проблема!
Вот грубый, не детализированный набросок.
Применять можно и сразу ко всей группе. Кроме того, пощелкать мышкой галочки в клеточки - куда быстрее чем работать по одному или группами, с учетом того, что в сериале, например, дороги одного языка могут идти в разном порядке и один номер потока для всех - не поможет. А в табличном виде там в окошках сразу могло бы быть видно, что дорога Rus, Eng, Jp и т.д. Осталось бы только на них галки расставить. Или если порядок одинаков, указать "отметить для всех" (вертикально - для всех файлов) или как на картинке горизонтально (для конкретного файла)!
Так что проблема не в компоновке GUI, а в умении программы писать и желании.
|
|
BuXyZ
Стаж: 10 лет 4 месяца Сообщений: 109
|
BuXyZ ·
13-Май-15 08:58
(спустя 2 месяца 15 дней)
как батником, из кучи AVI файлов вытащить звуковые дорожки через virtualdub руками тупо )))))
|
|
HortonEN
Стаж: 17 лет 8 месяцев Сообщений: 6333
|
HortonEN ·
13-Май-15 10:26
(спустя 1 час 27 мин.)
BuXyZ писал(а):
67772371как батником, из кучи AVI файлов вытащить звуковые дорожки
Шапка топика, видимо, для слабаков написана. Крутые поцоны заходят и срАзу постят вопросы. Не до мелочей... 
Прочтите же. Там всё разжовано. С примерами.
|
|
BuXyZ
Стаж: 10 лет 4 месяца Сообщений: 109
|
BuXyZ ·
13-Май-15 19:21
(спустя 8 часов, ред. 13-Май-15 19:21)
HortonEN писал(а):
67772959
BuXyZ писал(а):
67772371как батником, из кучи AVI файлов вытащить звуковые дорожки
Шапка топика, видимо, для слабаков написана. Крутые поцоны заходят и срАзу постят вопросы. Не до мелочей... 
Прочтите же. Там всё разжовано. С примерами.
видимо да... FOR %%i IN (*.avi) DO (
ffmpeg.exe -i "%%i" -c:a copy "%%~ni".ac3 ) При помощи FFMpeg вытащить первую дорожку из всех .avi
ну мне вот нужно 1ую, и 3ию, и ?...
при этом куда вытащить в нужную папку, а не в исходную
и новый вопрос, FOR %%A IN (*.mkv) а есть ли какой то аналог, но не для всех файлов,
а что то типа FOR i=1 to 20 do
и для каждого Итого взять файл MKV s01ei в него засунуть нужные дороги и сабы из другой папки
с именами s01ei_1.ac3 и s01ei_2.ac3 + сабы аналогично,
+ тут же убрать лишние дороги из мкв + прописать названия дорог\флаги и т.п.
сейчас тоже самое делаю руками с заменой s01Exx
|
|
|