Только ссылка на решение является плохой практикой. По крайней мере, приведите несколько примеров.
Эрик
1
Если внутри MP4 есть только один аудиопоток, аргумент -map не нужен, т.е. написание этого достаточно: ffmpeg -i INPUT.mp4 -c copy Output.aac
miyalys
Вот как создать в пакетном режиме. Сначала создайте подпапку «out», где находятся ваши mp4-файлы. Затем «откройте командное окно» в папку mp4 и вставьте следующее для% f в («* .mp4») do C: \ yourpath \ ffmpeg \ bin \ ffmpeg -i "% f" -c copy -map 0: a: 0 out / "% ~ nf.aac"
Виджей Джагдейл,
10
mp4box также может сделать это.
Чтобы демультиплексировать / извлечь aac из mp4 (при условии, что аудио - это вторая дорожка):
mp4box -raw 2 video.mp4
Это автоматически создаст выходной файл "video_track2.aac"
Если вы хотите контролировать имя выходного файла, вы должны сделать
mp4box -raw 2 video.mp4 -out audio.aac
Если вы хотите сделать ремукс обратно в контейнер mp4 (т.е. для iTunes), вы можете сделать:
mp4box -single 2 video.mp4 -out audio.m4a
Затем вы можете поместить это в пакетный скрипт для работы со всеми файлами в каталоге:
for %%f in ("*.mp4") do (
mp4box -single 2 "%%f" -out "%%~nf.m4a"
)
+1 Спасибо, команда -single - именно то, что я искал (она добавляет информацию MP4 к -raw)
Martin
6
Вот фактические команды для использования, так как все предоставленные ссылки фактически не дают их, и в любом случае: ссылки гниют и умирают, поэтому всегда должны заменяться фактическими ответами на stackexchange.
Отлично работал (с родительским проектом "ffmpeg.exe" вместо "avconv.exe") и исправил проблему вывода .aac из-за неточного тайм-кода. Оказывается, m4a - правильный формат контейнера.
SushiGuy
Я получаю "Выходной файл № 0 не содержит никакого потока"
Крис
0
Сначала я использую mkvtoolnix для преобразования MP4 в MKV и использую графический интерфейс mkvextract для извлечения нужной дорожки. Много менее сложный и полный графический интерфейс. Абсолютно нулевое изменение в любом компоненте вообще.
Если это менее сложно, не могли бы вы описать, как делать то, что ОП хочет сделать с этими инструментами? Также обратите внимание, что вопрос задан для инструмента командной строки.
Скотт
На самом деле mkvtoolnix - это графический интерфейс для командной строки mkvmerge.exe. Я полагаю, что вы также можете найти параметры командной строки и информацию о форматировании команд в строке. GUI также имеет возможность создания пакетных файлов для работы с несколькими файлами.
Ответы:
FFmpeg может это сделать. Вот список команд, которые могут пригодиться для вас. Иди сюда за инструкциями.
Пример:
-i
: входной файл-c copy
: копирует битовые потоки без перекодирования-map 0:a:0
: выбирает дорожку из: 1-й входной файл -> звуковые дорожки -> первая дорожка (1-я звуковая дорожка из 1-го входного файла)Обратите внимание, что это будет работать аналогично
avconv
, что является вилкойffmpeg
.источник
ffmpeg -i INPUT.mp4 -c copy Output.aac
mp4box также может сделать это.
Чтобы демультиплексировать / извлечь aac из mp4 (при условии, что аудио - это вторая дорожка):
Это автоматически создаст выходной файл "video_track2.aac"
Если вы хотите контролировать имя выходного файла, вы должны сделать
Если вы хотите сделать ремукс обратно в контейнер mp4 (т.е. для iTunes), вы можете сделать:
Затем вы можете поместить это в пакетный скрипт для работы со всеми файлами в каталоге:
(пакетный скрипт, вдохновленный videohelp и stackoverflow )
Ссылки для скачивания:
https://github.com/gpac/gpac/releases
http://gpac.wp.mines-telecom.fr/downloads/gpac-nightly-builds/
источник
Вот фактические команды для использования, так как все предоставленные ссылки фактически не дают их, и в любом случае: ссылки гниют и умирают, поэтому всегда должны заменяться фактическими ответами на stackexchange.
источник
Сначала я использую mkvtoolnix для преобразования MP4 в MKV и использую графический интерфейс mkvextract для извлечения нужной дорожки. Много менее сложный и полный графический интерфейс. Абсолютно нулевое изменение в любом компоненте вообще.
источник
Супер тоже может это сделать .
источник