无需提取内嵌封面文件,用FFmpeg将带封面的MP3转为封面画面+音频的视频的可行性咨询
无需提取内嵌封面文件,用FFmpeg将带封面的MP3转为封面画面+音频的视频的可行性咨询
当然可以做到!不用单独把封面提取成文件,直接用FFmpeg就能完成这个需求,下面给你具体的实现方法和细节说明:
核心实现命令
直接用这条命令就能搞定:
ffmpeg -loop 1 -framerate 1 -i "audio.mp3" -map 0:v:1 -map 0:a -shortest -r 1 "output.mp4"
参数细节解释
结合你提供的ffprobe输出,给你拆解每个参数的作用:
-loop 1:让内嵌的单帧封面循环播放,这样才能铺满整个音频的时长-framerate 1:设置封面流的帧率为1帧/秒,完全足够,还能节省输出视频的体积-i "audio.mp3":指定输入的带内嵌封面的MP3文件-map 0:v:1:关键参数!从你的ffprobe结果能看到,封面是Stream #0:1(标记为attached pic),这里0:v:1表示取第1个输入文件的第2个视频流(流索引从0开始计数)-map 0:a:取输入文件的音频流-shortest:让输出视频的时长和音频保持一致,避免因为封面循环导致视频无限长-r 1:统一输出视频的帧率为1,和输入的封面帧率匹配
额外注意事项
如果你的MP3文件内嵌封面的流索引不是1(极少数情况可能会有差异),可以先运行ffprobe -i audio.mp3确认封面流的编号,然后调整-map 0:v:N里的N值就行。
你担心的-loop和framerate参数属于image demuxer的问题也不用担心——FFmpeg会自动识别MP3里的内嵌封面为图片流,所以这些参数依然能正常生效,完全不需要修改源码(更不用等37年😂)。
备注:内容来源于stack exchange,提问作者jxx
相关产品推荐
相关产品推荐

