首页 > 其他分享 >使用ffmpeg修复本地视频文件(mp4)播放时进度条无法拖动的问题

使用ffmpeg修复本地视频文件(mp4)播放时进度条无法拖动的问题

时间:2024-10-10 16:01:26浏览次数:9  
标签:ffmpeg 进度条 mp4 video wav 视频文件 output audio

右击视频文件查看属性,在详细信息页查看视频时长,显示为空,推测进度条无法拖动的原因是时间轴损坏

于是采用了以下解决办法

  1. 将视频分离出来,命名为video.mp4
    ffmpeg -i 视频名称.mp4 -map 0:v -vcodec copy -bsf:v h264_mp4toannexb video.mp4

  2. 将音频分离出来,命名为audio.wav
    ffmpeg -i 视频名称.mp4 -vn audio.wav

  3. 重新混合视频和音频,输出为新的视频文件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

标签:ffmpeg,进度条,mp4,video,wav,视频文件,output,audio
From: https://www.cnblogs.com/spiropentadiene/p/18456553

相关文章

  • 【java 使用 ffmpeg 将rtsp转hls】
    java海康接口ffmpeg提示海康相关文件开发准备工具使用获取监控列表ffmpeg转换视频流视频流转换导入提示java使用SpringBoot框架jdk使用1.8版本海康通过访问OpenAPI文档中心的方式可以验证API网关是否安装成功,访问地址http://IP:Port/artemis-portal/......
  • 用python写一段脚本:将旧的视频文件中的音频替换成新的,并保存成新的视频文件
    代码:importsubprocessdefreplace_audio_with_ffmpeg(video_path,audio_path,output_path):#构建ffmpeg命令command=['ffmpeg','-i',video_path,#输入视频文件'-an',#禁用输入视频的音频'-i&......
  • 用python写一个脚本:将指定目录下及其所有子文件夹下的视频文件按中间时间切分成两部分
    代码:importosfrommoviepy.editorimportVideoFileClipdefsplit_video(video_path,output_dir):#加载视频文件clip=VideoFileClip(video_path)duration=clip.duration#计算中间时间点midpoint=duration/2#创建输出目录i......
  • Qt/C++ 音视频开发 - FFmpeg 安卓版
    Qt/C++音视频开发-FFmpeg安卓版介绍FFmpeg是一个开源的多媒体框架,它可以用来录制、转换和流式传输音视频。在Qt/C++开发中,FFmpeg可以用于处理各种音视频任务,例如转码、推流等。将FFmpeg集成到安卓平台上,可以实现强大的移动端音视频处理功能。应用使用场景视频......
  • 折腾笔记[1]-打包ffmpeg-cli到单个wasm二进制
    摘要使用c2w打包ffmpeg-cli到单个wasm二进制,实现ffmpeg可执行文件平台无关运行(BuildOnce,RunAnywhere)。AbstractUsingc2wtopackagetheffmpeg-cliintoasinglewasmbinary,achievingplatform-independentexecutionoftheffmpegexecutable(BuildOnce,RunA......
  • FFmpeg 初学者需要掌握的基础知识和实用技能。每个部分可以深入讲解,提供具体的命令示
    FFmpeg初级使用教程大纲1. FFmpeg简介什么是FFmpegFFmpeg的主要功能安装FFmpeg2. 基本命令格式FFmpeg的基本命令结构输入与输出文件的指定常用选项的介绍3. 常用命令示例转换视频格式示例:将MP4转换为AVI提取音频示例:从视频中提取音频压缩视......
  • 记ffmpeg subtitles滤镜切换字幕卡顿
    1.subtitles卡顿偷懒在项目中使用ffmpeg的subtitles滤镜进行字幕渲染。后来发现,使用滤镜切换字幕时会出现卡顿。经过进一步测试与代码调式确认,在播放一个时长在一个小时以上的视频文件的内挂字幕时,滤镜初始化花费了较长的时间。使用ffplay+subtitles滤镜播放该文件并显示字幕......
  • 【报错解决】moviepy临时保存视频文件处理后删除不了?
    报错问题如果在尝试删除临时视频或音频文件时遇到“占用无法删除”的错误报错原因这通常意味着有某个进程仍然在使用这些文件。原因是 VideoFileClip 对象或其相关的处理在文件被删除之前还没有完全释放对文件的锁定。解决方法在 moviepy 的 VideoFileClip 类中,并没......
  • FFmpeg开发笔记(五十三)移动端的国产直播录制工具EasyPusher
    EasyPusher是一款国产的RTSP直播录制推流客户端工具,它支持Windows、Linux、Android、iOS等操作系统。EasyPusher采用RTSP推流协议,其中安卓版EasyPusher的Github托管地址为https://github.com/EasyDarwin/EasyPusher-Android。不过EasyPusher有好几年没更新了,尤其安卓版的EasyPusher......
  • FFmpeg开发笔记(五十四)使用EasyPusher实现移动端的RTSP直播
    FFmpeg开发笔记(五十四)使用EasyPusher实现移动端的RTSP直播 合集-FFmpeg开发实战(55)  ​之前的文章《利用RTMP协议构建电脑与手机的直播Demo》介绍了如何使用RTMPStreamer实现完整的RTMP直播流程,另一篇文章《利用SRT协议构建手机APP的直播Demo》介绍了如何使用SRT......