Извлеките аудио M4A из видео и свяжите иллюстрацию
Почему в Ubuntu 12.04, когда я извлекаю аудио в M4A из видео (MP4 или FLV и т. Д.) С avconv
:
avconv -i video.mp4 -c:a libvo_aacenc sound.m4a
в нем есть видеопоток, и если я хочу только аудиопоток, я должен добавить -vn
вариант, вот так:
avconv -i video.mp4 -c:a libvo_aacenc -vn sound.m4a
Я имею в виду, M4A не аудиоформат?
Можно ли добавить обложку к аудиовыходу?
с помощью этой команды я могу извлечь один кадр,
avconv -i vid.mp4 -vsync 1 -frames 1 -s 1024x768 -an -y image.jpeg
но возможно ли это связать с аудиовыходом? Я полагаю, что решение является частью обоих, но я не могу понять это.
1 ответ
.m4a
это просто еще одно широко используемое расширение файла для контейнера MPEG-4 Part 14, обычно называемое MP4. Контейнер может нести видео, аудио и субтитры. Расширение не меняет этого факта, хотя часто вы просто вставляете аудио в .m4a
файлы и видео в .m4v
файлы.
Смотрите Википедию для получения дополнительной информации:
… Поскольку MPEG-4 Part 14 является контейнерным форматом, файлы MPEG-4 могут содержать любое количество потоков аудио, видео и даже субтитров, что делает невозможным определение типа потоков в файле MPEG-4 на основе его расширения имени файла в одиночестве. В ответ Apple Inc. начала использовать и популяризировать расширение имени файла.m4a, которое используется для контейнеров MP4 с аудиоданными в формате расширенного аудиокодирования с потерями (AAC) или в собственных форматах Apple Lossless (ALAC) без потерь. Программное обеспечение, способное воспроизводить аудио / видео, должно распознавать файлы с расширениями имен файлов.m4a или.mp4, как и следовало ожидать, поскольку между ними нет различий в формате файлов. Большая часть программного обеспечения, способного создавать аудио MPEG-4, позволит пользователю выбрать расширение имени файла созданных файлов MPEG-4.
Если вы хотите, чтобы одно статическое изображение отображалось вместе со звуком, вам придется преобразовать его в видео. Например, создайте нужный кадр и назовите его image.png
(или же image.jpg
):
avconv -i input.mp4 -frames:v 1 image.png
Это даст вам первый кадр видео. Если вы хотите одну из другой отметки времени, добавьте -ss
вариант перед -i
чтобы перейти, например, на 10 секунд: avconv -ss 10 -i …
,
Затем:
avconv -i input.mp4 -i image.png \
-c:v libx264 -pix_fmt yuv420p -r 1 -c:a copy -map 0:a:0 -map 1 output.mp4
Здесь выберите x264 для кодирования видео из неподвижного изображения и просто скопируйте аудиопоток из исходного файла. Частота кадров -r 1
должно быть достаточно, хотя вы можете оставить эту часть вне.
С -map 0:a:0
Вы выбираете первый аудиопоток из первого файла, и с -map 1
Вы выбираете изображение, которое будет смешано в вывод. (The \
это просто убежать от новой строки.)
-map
Коммутаторы прекрасно работают для последних (и приличных) последних версий FFmpeg - хотя я не могу говорить о Libav в Ubuntu. Если это не работает, просто скачайте FFmpeg.
Если вы хотите установить обложку альбома для .m4a
файл, используйте AtomicParsley:
AtomicParsley input.m4a --artwork image.jpg
Это создаст новый файл с изображением, встроенным в качестве обложки, который теперь корректно отображается в большинстве медиаплееров. Чтобы перезаписать сам входной файл, используйте --overWrite
переключиться также.