.m4a
- это просто еще одно широко используемое расширение файла для контейнера MPEG-4 Part 14, обычно называемое MP4. Контейнер может нести видео, аудио и субтитры. Расширение не меняет этого факта, хотя часто вы помещаете аудио только в файлы .m4a
, а видео в файлы .m4v
.
Смотрите Википедию для получения дополнительной информации:
… Поскольку MPEG-4 Part 14 является контейнерным форматом, файлы MPEG-4 могут содержать любое количество потоков аудио, видео и даже субтитров, что делает невозможным определение типа потоков в файле MPEG-4 на основе его расширения имени файла в одиночестве. В ответ Apple Inc. начала использовать и популяризировать расширение имени файла .m4a, которое используется для контейнеров MP4 с аудиоданными в формате Advanced Audio Coding (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
вы выбираете изображение, которое будет мультиплексировано в вывод. (\
Это просто чтобы выйти из новой строки.)
Переключатели -map
отлично работают для последних (и приличных) последних версий FFmpeg - хотя я не могу говорить о Libav в Ubuntu. Если это не работает, просто скачайте FFmpeg.
Если вы хотите установить обложку альбома для файла .m4a
, используйте AtomicParsley:
AtomicParsley input.m4a --artwork image.jpg
Это создаст новый файл с изображением, встроенным в качестве иллюстрации, который теперь корректно отображается в большинстве медиаплееров. Чтобы перезаписать сам входной файл, используйте также параметр --overWrite
.