Se eu estou entendendo sua pergunta corretamente, o problema que você está tendo não tem nada a ver com o ffmpeg e tudo a ver com sua escolha de contêiner. O contêiner MP4 é bom quando colocado em o uso para o qual ele foi projetado , mas é uma má escolha ao tentar incluir a arte da capa . Pelo que sei, a melhor opção de contêiner multimídia que suporta o que você está tentando é Matroska , pois ele suporta adicionando praticamente qualquer coisa a um arquivo multimídia. Há um exemplo de adição de capas de capa disponível aqui. Uma rápida olhada no gerenciador de arquivos (nautilus no meu caso) mostra a arte da capa como o ícone mostrado abaixo:
mediainfo
deixa claro que há anexos no contêiner que fornecem saída como:
mediainfo cover_art.mkv
----Snip---
Attachment : Yes / Yes / Yes / Yes
----Snip---
O ffmpeg até informa quais anexos estão com ffmpeg -i cover_art.mkv
:
--Snip--
Metadata:
filename : cover.jpg
mimetype : image/jpeg
Stream #0:3: Video: mjpeg, yuvj444p(pc, bt470bg/unknown/unknown), 120x176 [SAR 300:300 DAR 15:22], 90k tbr, 90k tbn
Metadata:
filename : small_cover.jpg
mimetype : image/jpeg
Stream #0:4: Video: mjpeg, yuvj444p(pc, bt470bg/unknown/unknown), 1067x600 [SAR 96:96 DAR 1067:600], 90k tbr, 90k tbn
Metadata:
filename : cover_land.jpg
mimetype : image/jpeg
Stream #0:5: Video: mjpeg, yuvj444p(pc, bt470bg/unknown/unknown), 213x120 [SAR 96:96 DAR 71:40], 90k tbr, 90k tbn
Metadata:
filename : small_cover_land.jpg
mimetype : image/jpeg
É claro que você terá que mapear os fluxos adequadamente e fornecer os metadados após a criação. A coisa a lembrar é que ffmpeg
trata essas imagens como fluxos de vídeo adicionais.
A criação da linha de comando '' ffmpeg 'de que você precisa pode ser assistida com uma revisão da documentação. Se o seu arquivo .ogg é somente de áudio, você pode usar o contêiner de MP3 e sua resposta é aqui.