A sintaxe básica com uma versão recente do ffmpeg é
ffmpeg -i video.mp4 -i image.png -map 1 -map 0 -c copy -disposition:0 attached_pic out.mp4
Na saída, o ffmpeg ainda relatará o fluxo como vídeo. Verifique usando seu gerenciador de arquivos.
Eu tentei usar esta solução usando o ffmpeg para definir um quadro de pôster para um MP4.
ffmpeg -i input.mp4 -i image.png -acodec copy -vcodec copy -map 0 -map 1:0 -metadata comment="adding a comment" output.mp4
Os metadados estão sendo definidos, mas a imagem não está sendo salva. Quando inspeciono essa saída com ffprobe -show_format
, o filme contém três fluxos (em vez dos dois fluxos antigos), mas acha que é um vídeo:
Stream #0:2(und): Video: png (mp4v / 0x7634706D), rgba(pc), 843x633, 123731 kb/s, 25 fps, 25 tbr, 12800 tbn, 12800 tbc
Salvando a imagem usando um programa GUI e, em seguida, inspecionando os programas
Stream #0:2: Video: png, rgb24(pc), 843x633, 90k tbr, 90k tbn, 90k tbc
Como eu especifico a segunda entrada é uma imagem?
A sintaxe básica com uma versão recente do ffmpeg é
ffmpeg -i video.mp4 -i image.png -map 1 -map 0 -c copy -disposition:0 attached_pic out.mp4
Na saída, o ffmpeg ainda relatará o fluxo como vídeo. Verifique usando seu gerenciador de arquivos.
Tags ffmpeg