Что нового

Конвертирование mp3 и avi - в mp3

Grell

Новичок
Сообщения
127
Репутация
0
Здравствуйте.
У меня такой вопрос.
В папке "C:\1 32 s\" лежат (в том числе и в подпапках) файлы с расширением *.mp3, *.wav, *.mp4, *.avi.

Как скриптом autoit - переконвертировать (с заменой) файлы с расширениями mp4 и avi - в mp3 (не трогая уже имеющиеся mp3 и wav) ?
 

Sufferer

Новичок
Сообщения
10
Репутация
3
Как скриптом autoit - переконвертировать (с заменой) файлы с расширениями mp4 и avi
Autoit не умеет конвертировать мультимедиа. Но можно использовать кодек ffmpeg
Код:
_RunDos('cd путь\к\кодеку && ffmpeg -i путь\к\исходному\файлу.mp4 путь\к\выходному\файлу.mp3')

Очень примерно:
Код:
$search = FileFindFirstFile('C:\Music\*.mp4')
While 1
     $result = FileFindNextFile($search)
     If @error Then
          ExitLoop
     EndIf
     _RunDos('cd C:\Codec && ffmpeg -i C:\Music\' & $result & ' ' & 'C:\Music\' & $result & '.mp3')
WEnd
 
Автор
G

Grell

Новичок
Сообщения
127
Репутация
0
Ясно
Сообщение автоматически объединено:

Sufferer
скажите, а вот -
C:\Codec - это что за адрес такой.
У меня нет такой папки на диске C

И еще - кроме mp4 файлов - там же еще есть avi, mpg, wmv - как их в этом коде прописать ?
 
Последнее редактирование:

Sufferer

Новичок
Сообщения
10
Репутация
3
C:\Codec - это что за адрес такой.
Это просто пример. Как-будто бы в этой директории находится тот кодек (Вам нужен только лишь ffmpeg.exe). И 'C:\Music' тоже для примера, будто в этой директории находятся файлы, которые нужно конвертировать. Вы можете указать свои папки

И еще - кроме mp4 файлов - там же еще есть avi, mpg, wmv - как их в этом коде прописать ?

Как вариант, просто использовать вышеприведённый пример несколько раз подряд в одном и том же скрипте, заменяя параметр поиска в первой строке на нужное расширение, например, 'C:\Music\*.avi'
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
В архиве пример поиска и конвертирования в отдельную папку
утилиту кодирования брал отсюда - https://ffmpeg.zeranoe.com/builds/
из архива нужен файл ffmpeg.exe
скопировать этот файл в одну папку со скриптом
 

Вложения

  • test.7z
    2.4 КБ · Просмотры: 8
Автор
G

Grell

Новичок
Сообщения
127
Репутация
0
joiner
Спасибо.
Сделал все как вы сказали. Запустил скрипт - и он создал в папке result - два пустых файла mp3
А как их проиграть, они же весят по 0 байт ?

(Я имел ввиду - конвертирование видео-файлов в звуковые, а не создание пустых файлов с нужным расширением.)
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
у меня работает. я конвертировал 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, $iPid
Local $aFiles = _FF_SearchEx($sSpath, 'avi|mp4|mkv'); поиск в подпапках
If Not @error Then
    Local $iPerc
    For $i = 1 To $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 флаг согласия на перезапись
        While 1
            $sSTR = StderrRead($iPid)
            If @error Then ExitLoop
            If $sSTR Then ConsoleWrite($sSTR & @LF)
        WEnd
    Next
EndIf
 
Автор
G

Grell

Новичок
Сообщения
127
Репутация
0
joiner ,
Запустил в консоли - посмотрел результат.
Скрипт работает долю секунды, затем заканчивает свою работу без ошибок.

Результат - ничего не происходит.
В папке result - ничего не появляется.
 

Sufferer

Новичок
Сообщения
10
Репутация
3
Сделал все как вы сказали. Запустил скрипт - и он создал в папке result - два пустых файла mp3
Я извиняюсь, а Вы не забыли в скрипте 'пример.au3' поменять значение переменной $sSpath на нужное? (путь к Вашей папке с исходными файлами)
 
Автор
G

Grell

Новичок
Сообщения
127
Репутация
0
Sufferer
нет, не забыл
Сообщение автоматически объединено:

joiner ,
Запустил в консоли - посмотрел результат.
Скрипт работает долю секунды, затем заканчивает свою работу без ошибок.

Результат - ничего не происходит.
В папке result - появляются пустые файлы, размером 0 кб.
Сообщение автоматически объединено:

joiner , В консоли - скрипт написал следующее:

ffmpeg version git-2020-06-03-b6d7c4c Copyright (c) 2000-2020 the FFmpeg developers

built with gcc 9.3.1 (GCC) 20200523
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libsrt --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --disable-w32threads --enable-libmfx --enable-ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf

libavutil 56. 49.100 / 56. 49.100
libavcodec 58. 90.100 / 58. 90.100
libavformat 58. 44.100 / 58. 44.100
libavdevice 58. 9.103 / 58. 9.103
libavfilter 7. 84.100 / 7. 84.100
libswscale 5. 6.101 / 5. 6.101
libswresample 3. 6.100 / 3. 6.100

libpostproc 55. 6.100 / 55. 6.100

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'F:\-скрипты\РЕЗЕРВ !!!!!!!!!!!-запросы форума-\-Р—РђРџР РћРЎР«\-РњРђРЎРЎРР’ - запросов.exe\--ШЕЛ (РђР’РўРћРРў) (категории)\-КОНВЕРТ\Конвертирование mp4 Рё avi - РІ mp3\СЫРЬЕ\test\исходные\Road Rash 3 Main OST Cover (by Sobin Michael).mp4':
Metadata:
major_brand : mp42
minor_version : 0

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

Conversion failed!


ffmpeg version git-2020-06-03-b6d7c4c Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 9.3.1 (GCC) 20200523
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libsrt --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --disable-w32threads --enable-libmfx --enable-ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
libavutil 56. 49.100 / 56. 49.100
libavcodec 58. 90.100 / 58. 90.100
libavformat 58. 44.100 / 58. 44.100
libavdevice 58. 9.103 / 58. 9.103
libavfilter 7. 84.100 / 7. 84.100
libswscale 5. 6.101 / 5. 6.101
libswresample 3. 6.100 / 3. 6.100
libpostproc 55. 6.100 / 55. 6.100

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'F:\-скрипты\РЕЗЕРВ !!!!!!!!!!!-запросы форума-\-Р—РђРџР РћРЎР«\-РњРђРЎРЎРР’ - запросов.exe\--ШЕЛ (РђР’РўРћРРў) (категории)\-КОНВЕРТ\Конвертирование mp4 Рё avi - РІ mp3\СЫРЬЕ\test\исходные\Road Rash 3 United Kingdom OST (Metal.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isommp42
creation_time : 2017-06-08T16:54:38.000000Z
Duration: 00:03:32.88, start: 0.000000, bitrate: 708 kb/s
Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p(tv, bt709), 640x360 [SAR 1:1 DAR 16:9], 610 kb/s, 24 fps, 24 tbr, 12288 tbn, 48 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 95 kb/s (default)
Metadata:
creation_time : 2017-06-08T16:54:39.000000Z
handler_name : IsoMedia File Produced by Google, 5-11-2011
Stream mapping:
Stream #0:1 -> #0:0 (aac (native) -> mp3 (mp3_mf))
Press [q] to stop, [?] for help

[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

Conversion failed!

>Exit code: 0 Time: 6.293
 

Cytrus

Новичок
Сообщения
110
Репутация
3
Ну ясно же, что вы неправильно передаёте параметры. Там же огромный мануал. Изучайте его.

https://ffmpeg.org/ffmpeg-all.html

А потом сюда вставляете нужные параметры.

Код:
$iPid =Run($sFFmpeg & ' -i "' & $aFiles[$i] & '" -y "' & $DellExt & '"', '', @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD);
 

Sufferer

Новичок
Сообщения
10
Репутация
3
Там же огромный мануал

Этот огромный мануал нужен для тонкой настройки параметров. Но вся суть конвертирования сводится к команде, которая большими буквами выведена прямо на главной странице проекта.

"Конвертирование видео и аудио ещё никогда не было таким лёгким"

ffmpeg.png

'F:\-скрипты\РЕЗЕРВ !!!!!!!!!!!-запросы форума-\-Р—РђРџР РћРЎР«\-РњРђРЎРЎРР’ - запросов.exe\--ШЕЛ (РђР’РўРћРРў) (категории)\-КОНВЕРТ\Конвертирование mp4 Рё avi - РІ mp3\СЫРЬЕ\test\исходные\Road Rash 3 Main OST Cover (by Sobin Michael).mp4':

А вот и проблемы с кириллицей подъехали!
 
Автор
G

Grell

Новичок
Сообщения
127
Репутация
0
Sufferer
всю кириллицу убрал - теперь вот такое пишет:
ffmpeg version git-2020-06-03-b6d7c4
c Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 9.3.1 (GCC) 20200523
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libsrt --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --disable-w32threads --enable-libmfx --enable-ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf

libavutil 56. 49.100 / 56. 49.100

libavcodec 58. 90.100 / 58. 90.100

libavformat 58. 44.100 / 58. 44.100

libavdevice 58. 9.103 / 58. 9.103
libavfilter 7. 84.100 / 7. 84.100

libswscale 5. 6.101 / 5. 6.101
libswresample 3. 6.100 / 3. 6.100

libpostproc 55. 6.100 / 55. 6.100

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\test\begin\Road Rash 3 Main OST Cover (by Sobin Michael).mp4':
Metadata:
major_brand : mp42
minor_version : 0
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 @ 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

configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libsrt --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --disable-w32threads --enable-libmfx --enable-ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf

libavutil 56. 49.100 / 56. 49.100

libavcodec 58. 90.100 / 58. 90.100

libavformat 58. 44.100 / 58. 44.100
libavdevice 58. 9.103 / 58. 9.103

libavfilter 7. 84.100 / 7. 84.100

libswscale 5. 6.101 / 5. 6.101

libswresample 3. 6.100 / 3. 6.100

libpostproc 55. 6.100 / 55. 6.100

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\test\begin\Road Rash 3 United Kingdom OST (Metal.mp4':

Metadata:
major_brand : mp42
minor_version :
0

compatible_brands: isommp42

creation_time : 2017-06-08T16:54:38.000000Z

Duration: 00:03:32.88, start:
0.000000, bitrate: 708 kb/s


Stream #0:
0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p(tv, bt709), 640x360 [SAR 1:1 DAR 16:9], 610 kb/s,
24 fps, 24 tbr,
12288 tbn, 48 tbc (default)
Metadata:
handler_name :
VideoHandler

Stream #0:
1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 95 kb/s (default)

Metadata:
creation_time :
2017-06-08T16:54:39.000000Z
handler_name : IsoMedia File Produced by Google, 5-11-2011


Stream mapping:

Stream #0:1 -> #0:0 (aac (native) -> mp3 (mp3_mf))


Press [q] to stop, [?] for help

[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

Conversion failed!


>Exit code: 0 Time: 1.314
 

Sufferer

Новичок
Сообщения
10
Репутация
3
ffmpeg version git-2020-06-03-b6d7c4
Похоже, что Вы скачали Git билд, который создают по нескольку раз в неделю. Лучше бы Вам снова обратиться к странице загрузки и скачать стабильный релиз. Для этого в первом выпадающем списке выберите версию 4.2.3, во втором - архитектуру своей системы, в третьем - Static.
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
не нужно выкладывать все, что пишет в консоли. там одна и та же ошибка в строке с error
эту ошибку я указал выше в своем сообщении.
у меня спотыкается только на некоторых mkv файлах
Сообщение автоматически объединено:

Похоже, что Вы скачали Git билд,
абсолютно точно. не думал что такие косяки у них.
скачал релизную сборку и все конвертируется нормально
 
Последнее редактирование:

Sufferer

Новичок
Сообщения
10
Репутация
3
не думал что такие косяки у них.
А мне наоборот всегда верилось, что в мире опен соурс если явно не указано, что версия продукта "release", "stable" или что-то подобное, то вероятность, что всё переломано, стремится к 100%. Все эти "ночные сборки" потому и называются ночными, что человек не глядя копипастит исходный код и ставит его на ночь компилироваться, а потом идёт спать и на утро выкладывает результаты куда следует.
 
Автор
G

Grell

Новичок
Сообщения
127
Репутация
0
О !
Заработало !!!
Спасибо всем специалистам за советы.
 
Верх