无法使用FFmpeg将FLV文件转换为MP4文件的技术求助
解决FLV转MP4时FFmpeg报「dimensions not set」的问题
错误原因
你的FLV文件视频流未封装明确的分辨率元数据,PotPlayer播放时会从视频帧中自动解析分辨率,但MP4容器要求输出文件头必须提前指定分辨率参数,直接复制流的情况下FFmpeg无法自动补全该信息,因此触发报错。
解决方案
方案1:重新编码视频(推荐,无需手动查询分辨率)
放弃视频流复制,让FFmpeg重新编码视频时自动检测并设置分辨率,音频保持复制以节省处理时间:ffmpeg -i 2.22_xindongfang.flv -c:a copy test.mp4方案2:手动指定分辨率
若能通过PotPlayer查看视频实际分辨率(右键视频→属性→视频信息),比如分辨率为1920×1080,可手动添加参数指定:# 使用scale滤镜指定分辨率 ffmpeg -i 2.22_xindongfang.flv -acodec copy -vcodec copy -vf scale=1920:1080 test.mp4 # 或直接用-s参数指定 ffmpeg -i 2.22_xindongfang.flv -acodec copy -vcodec copy -s 1920x1080 test.mp4方案3:先修复FLV元数据再复制流
先修复原FLV文件的元数据,让FFmpeg能识别到分辨率后再进行流复制:# 修复FLV文件元数据 ffmpeg -i 2.22_xindongfang.flv -c copy -f flv fixed.flv # 转MP4 ffmpeg -i fixed.flv -c copy test.mp4
内容的提问来源于stack exchange,提问作者Karmylr
相关产品推荐
相关产品推荐

