.m4a
é apenas outra extensão de arquivo comumente usada para o contêiner MPEG-4 Parte 14 , geralmente chamado de MP4. O contêiner pode transportar vídeo, áudio e legendas. A extensão não altera esse fato, embora, muitas vezes, você só coloque áudio em .m4a
arquivos e vídeo em .m4v
arquivos.
Veja a Wikipedia para mais informações:
… since MPEG-4 Part 14 is a container format, MPEG-4 files may contain any number of audio, video, and even subtitle streams, making it impossible to determine the type of streams in an MPEG-4 file based on its filename extension alone. In response, Apple Inc. started using and popularizing the .m4a filename extension, which is used for MP4 containers with audio data in the lossy Advanced Audio Coding (AAC) or its own lossless Apple Lossless (ALAC) formats. Software capable of audio/video playback should recognize files with either .m4a or .mp4 filename extensions, as would be expected, since there are no file format differences between the two. Most software capable of creating MPEG-4 audio will allow the user to choose the filename extension of the created MPEG-4 files.
Se você quiser uma imagem estática exibida junto com o áudio, terá que convertê-la em um vídeo. Por exemplo, crie o quadro desejado e chame-o de image.png
(ou image.jpg
):
avconv -i input.mp4 -frames:v 1 image.png
Isso lhe dará o primeiro quadro do vídeo. Se você quiser um de outro timestamp, adicione a opção -ss
antes de -i
para pular para, por exemplo. 10 segundos: avconv -ss 10 -i …
.
Então:
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
Aqui, escolha x264 para codificar um vídeo da imagem estática e copie o fluxo de áudio do arquivo original. Uma taxa de quadros de -r 1
deve ser suficiente, embora você possa deixar essa parte de fora.
Com -map 0:a:0
, você seleciona o primeiro fluxo de áudio do primeiro arquivo e, com -map 1
, seleciona a imagem a ser multiplexada na saída. (O \
é apenas para escapar da nova linha.)
As opções -map
funcionam bem para as versões mais recentes (e decentes) do FFmpeg - não posso falar sobre o Libav do Ubuntu. Se isso não funcionar, basta baixar o FFmpeg .
Se você quiser definir a capa do álbum para um arquivo .m4a
, use AtomicParsley :
AtomicParsley input.m4a --artwork image.jpg
Isso criará um novo arquivo com a imagem incorporada como trabalho artístico, que agora é exibido corretamente na maioria dos players de mídia. Para sobrescrever o próprio arquivo de entrada, use também a opção --overWrite
.