使用ffmpeg修复本地视频文件(mp4)播放时进度条无法拖动的问题
右击视频文件查看属性,在详细信息页查看视频时长,显示为空,推测进度条无法拖动的原因是时间轴损坏
于是采用了以下解决办法
-
将视频分离出来,命名为video.mp4
ffmpeg -i 视频名称.mp4 -map 0:v -vcodec copy -bsf:v h264_mp4toannexb video.mp4
-
将音频分离出来,命名为audio.wav
ffmpeg -i 视频名称.mp4 -vn audio.wav
-
重新混合视频和音频,输出为新的视频文件output.mp4
ffmpeg -i video.mp4 -i audio.wav -c copy output.mp4
第三步发生了以下报错:
Could not find tag for codec pcm_s16le in stream #1, codec not currently supported in container
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Error initializing output stream 0:1 --
这个错误表明将一个特定的编码格式pcm_s16le放入一个不支持该编码格式的容器格式中。
经过查询得知问题大概率在于MP4容器通常不支持pcm_s16le这种原始的PCM音频编码。
因此第三步更改为先将WAV音频转码为MP4容器支持的音频编码格式AAC再混合视频和音频
ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac -strict experimental output.mp4
综上所述,依次运行以下语句,将生成一个进度条可以正常拖动的output.mp4文件
> ffmpeg -i 视频名称.mp4 -map 0:v -vcodec copy -bsf:v h264_mp4toannexb video.mp4
> ffmpeg -i 视频名称.mp4 -vn audio.wav
> ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac -strict experimental output.mp4
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)