Это просто пример. Как-будто бы в этой директории находится тот кодек (Вам нужен только лишь ffmpeg.exe). И 'C:\Music' тоже для примера, будто в этой директории находятся файлы, которые нужно конвертировать. Вы можете указать свои папки
Как вариант, просто использовать вышеприведённый пример несколько раз подряд в одном и том же скрипте, заменяя параметр поиска в первой строке на нужное расширение, например, 'C:\Music\*.avi'
В архиве пример поиска и конвертирования в отдельную папку
утилиту кодирования брал отсюда - https://ffmpeg.zeranoe.com/builds/
из архива нужен файл ffmpeg.exe
скопировать этот файл в одну папку со скриптом
joiner
Спасибо.
Сделал все как вы сказали. Запустил скрипт - и он создал в папке result - два пустых файла mp3
А как их проиграть, они же весят по 0 байт ?
(Я имел ввиду - конвертирование видео-файлов в звуковые, а не создание пустых файлов с нужным расширением.)
у меня работает. я конвертировал avi и mp4 видео файлы. это были детские мульты. декодировал скачанный с лостфильма сериал Быть человеком. там mkv. Весь звук извлек.
некоторые mkv файлы не конвертируются. значит, нужны дополнительные параметры(ключи) для запуска декодера. справка по декодеру полный атас. инфы море, нужно долго и нудно разбираться. вот какую ошибку выдает декодер
Ошибка инициализации выходного потока 0: 0 - Ошибка при открытии кодера для выходного потока # 0: 0 - возможно, неверные параметры, такие как bit_rate, скорость, ширина или высота
вывод, несмотря на одинаковое расширение видео файлов они могут быть кодированы неодинаково.
данный код пишет в консоль. это код файла "пример". запусти в редакторе. смотри в консоли результат
Код:
#include <FFSearchEx.au3>#include <AutoItConstants.au3>Local$sSpath='подставить свой путь к файлам'Local$sDpath=@ScriptDir&'\result\'; путь к папке с готовыми файлами. папка должна быть созданаLocal$sFFmpeg=@ScriptDir&'\ffmpeg.exe'Local$DellExt,$sGetName,$sSTR,$iPidLocal$aFiles=_FF_SearchEx($sSpath,'avi|mp4|mkv'); поиск в подпапкахIfNot@errorThenLocal$iPercFor$i=1To$aFiles[0]$sGetName=StringRegExp($aFiles[$i],'(?m)^(?:.*\\)([^\\]*?)(?:\.[^.]+)?$',3)$DellExt=$sDpath&$sGetName[0]&'.mp3'$iPid=Run($sFFmpeg&' -i "'&$aFiles[$i]&'" -y "'&$DellExt&'"','',@SW_HIDE,$STDERR_CHILD+$STDOUT_CHILD); -y флаг согласия на перезаписьWhile1$sSTR=StderrRead($iPid)If@errorThenExitLoopIf$sSTRThenConsoleWrite($sSTR&@LF)WEndNextEndIf
compatible_brands: isommp42
creation_time : 2016-08-25T05:50:26.000000Z
Duration: 00:03:40.59, start: 0.000000, bitrate: 1512 kb/s
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 1383 kb/s, 24 fps, 24 tbr, 90k tbn, 48 tbc (default)
Metadata:
creation_time : 2016-08-25T05:50:26.000000Z
handler_name : ISO Media file produced by Google Inc.
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 125 kb/s
(default)
Metadata:
creation_time : 2016-08-25T05:50:26.000000Z
handler_name : ISO Media file produced by Google Inc.
Stream mapping:
Stream #0:1 -> #0:0 (aac (native) -> mp3 (mp3_mf))
Press [q] to stop, [?] for help
[mp3_mf @ 00000000005adc00]
could not find any MFT for the given media type
[mp3_mf @ 00000000005adc00] could not create MFT
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
[mp3_mf @ 00000000003e2640]
could not find any MFT for the given media type
[mp3_mf @ 00000000003e2640] could not create MFT
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Этот огромный мануал нужен для тонкой настройки параметров. Но вся суть конвертирования сводится к команде, которая большими буквами выведена прямо на главной странице проекта.
"Конвертирование видео и аудио ещё никогда не было таким лёгким"
Metadata:
creation_time :
2016-08-25T05:50:26.000000Z
handler_name : ISO Media file produced by Google Inc.
Stream #0:
1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 125 kb/s (default)
Metadata:
creation_time : 2016-08-25T05:50:26.000000Z
handler_name : ISO Media file produced by Google Inc.
[mp3_mf @ 00000000003f1a80]
could not find any MFT for the given media type
[mp3_mf @ 00000000003f1a80] could not create MFT
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed!
ffmpeg version git-2020-06-03-b6d7c4
c Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 9.3.1 (GCC) 20200523
[mp3_mf @ 00000000006715c0]
could not find any MFT for the given media type
[mp3_mf @ 00000000006715c0] could not create MFT
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Похоже, что Вы скачали Git билд, который создают по нескольку раз в неделю. Лучше бы Вам снова обратиться к странице загрузки и скачать стабильный релиз. Для этого в первом выпадающем списке выберите версию 4.2.3, во втором - архитектуру своей системы, в третьем - Static.
не нужно выкладывать все, что пишет в консоли. там одна и та же ошибка в строке с error
эту ошибку я указал выше в своем сообщении.
у меня спотыкается только на некоторых mkv файлах
А мне наоборот всегда верилось, что в мире опен соурс если явно не указано, что версия продукта "release", "stable" или что-то подобное, то вероятность, что всё переломано, стремится к 100%. Все эти "ночные сборки" потому и называются ночными, что человек не глядя копипастит исходный код и ставит его на ночь компилироваться, а потом идёт спать и на утро выкладывает результаты куда следует.