-# 项目场景:

在项目中做视频剪辑,合并多个视频为一个视频时,会出现多种坑,如视频无法播放,视频时长不对,视频无声音,视频合并处卡顿等问题

1.合并多个mp4,调整速度后合并出现视频无法播放以及时长不符

version1.0视频合并命令
1.将所有的视频根据前端传递的参数进行视频切割,参数包括 startTime(开始剪辑时间),endTime(结束时间),mediaId(文件id),speed(加速倍数)
2. ffmpeg -i input.mp4 -codec copy -ss 00:00:00 -to 00:16:00 output.mp4 (根据meidiaId查出路径剪辑一段视频)
3. 判断是否加速,不加速,将output.mp4写入 filelist.txt中
4. ffmpeg -i output.mp4 -filter_complex [0:v]setpts=" + setptsStr + "*PTS[v];[0:a]atempo=" + videoTimeParam.getSpeed() + "[a] -map -[v] -map -[a] speed.mp4  (如果加速将output.mp4加速为speed.mp4,写入filelist.txt中,output.mp4不写入)
5. 循环多个视频
6. ffmpeg -f concat -safe -0 -i filelist.txt -c copy videocut.mp4  (视频合并)

原因分析:

视频未重新编码 -c copy 直接生成视频

2.视频无音效

https://blog.meathill.com/ffmpeg/how-to-ffmpeg-concatenating-video-lost-audio.html

原因分析:

ffmpeg默认第一个视频的音频,第一个无音频那么都没有

3.剪辑处卡顿

//为了避免视频时长问题,又不想重新编码,我采用将mp4格式转为ts
1.和第一部分一样,先使用ffmpeg命令将视频剪辑
2. 判断是否加速,不加速,将output.mp4写入 filelist.txt中
3.不加速将output.mp4转为ts文件:ffempg -i output.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb output.ts
3.将ts文件写入filelist.txt文件中
4.加速,将output.mp4转为speed.mp4再转为ts文件
5.合并文件

原因分析:

ts文件合并解决了视频长度的问题,但是再视频剪辑处,丢失关键帧。所以造成视频合并处卡顿


解决方案:

视频关键帧技术进行视频剪辑
ffmpeg 为了加速,会使用关键帧技术, 所以有时剪切出来的结果在起止时间上未必准确。 通常来说,把 -ss 选项放在 -i 之前,会使用关键帧技术; 把 -ss 选项放在 -i 之后,则不使用关键帧技术。 如果要使用关键帧技术又要保留时间戳,可以加上 -copyts 选项:
ffmpeg -ss 00:00:01 -i input.mp4 -to 00:16:00 -vcodec copy -acodec copy -y out.mp4

4.补充 - 视频分割时间不精确

//如上述命令进行视频剪辑,合并视频后会发现视频合并处可能会出现重复的画面,
//这是因为在视频剪辑时,视频的关键帧可能不在这一秒,所以剪辑的时间不精确
//网上有很多处理命令:
1.加入 -accurate_seek 参数在-i的前面和-avoid_negative_ts 1 参数
ffmpeg -ss {0} -to {1} -accurate_seek -i {2} -codec copy -avoid_negative_ts 1 -y {3}2.剪辑前调整关键帧
ffmpeg -ss {0} -to {1} -i {2} -c:a copy -vcodec libx264 -keyint_min - -g 1 -y {3}

我是用上述都没有解决,ffmpeg命令顺序很有讲究,最终的结果命令是

ffmpeg -ss {0} -to {1} -i {2} -vcodec copy -acodec copy -strict -2 -keyint_min 2 -g 1 -y {3}//-keyint_min 60 -g 60 -sc_threshold 0  -keyint_min为最小关键帧间隔
//-sc_threshold这个命令会根据视频的运动场景,自动为你添加额外的I帧,所以会导致你编出来的视频关键帧间隔不是你设置的长度

ffmpeg视频剪辑视频长度问题,视频无声音,视频卡顿问题相关推荐

  1. 单选按钮必填会有红色选中提示吗_视频切割怎么弄?视频剪辑软件可以切割视频吗?...

    很多人在提及视频剪辑的时候,首先会想到的就是各种炫酷的操作,例如添加动画特效啊,配上背景音乐啊,配上字幕啊一类的,殊不知,在所有的操作之前,咱们都得先完成一个步骤,那便是视频切割!很多时候,咱们的素材 ...

  2. 自媒体视频剪辑,怎样去掉视频中的字幕和水印

    很多刚加入自媒体朋友,遇到带有字幕或者水印的视频,总是措手不及,不知如何处理.今天,六六青年和自媒体群的朋友聊天,就有一个群友因为不会处理视频中的字幕而发愁.其实,要完全去掉字幕,而又不影响原视频内容 ...

  3. 视频剪辑方法,在视频上添加图片或者视频

    最近有很多朋友在问,该如何快速剪辑视频,比如在视频画面中添加图片.或者视频中添加视频呢?其实这样的效果不难实现,下面一起来学习一下. 材料准备: 一台Win系统的电脑 安装一个媒体梦工厂 视频素材 步 ...

  4. 视频剪辑用计算机,用于视频剪辑的笔记本电脑,我们都有哪些选择

    曾经,我们多在台式机上编辑视频,而笔记本电脑由于性能有较大的差距,直接剪辑的流畅性一般.其主要弱势在于显卡.内存和CPU,有时功率不足也会带来影响.但是,随着新的功能更强大的计算机部件的出现(例如SS ...

  5. video标签(获取视频时间总长度,视频当前时间,播放暂停方法,视频封面,)

    下面是HTML的内容 <videoid="video"@canplay="getVidDur()"ref="vueMiniPlayer" ...

  6. moviepy音视频剪辑:多个视频合成一个视频

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.视频合成概述 视频合成,也称为非线性编辑,实际 ...

  7. Mac下最专业的视频剪辑软件,FCPX视频降噪实用教学

    在光线不足条件下录制的视频片段或者使用图像传感器较小的设备(如智能手机或小型便携式摄像机)录制的片段均会出现视频噪音.视频噪音像是在视频图像上叠加的静态或雪花状随机点图案,类似于在光线不足或曝光不足的 ...

  8. 视频剪辑用计算机,电脑视频剪辑软件哪个好?三款超实用工具推荐给你!

    软件大小: 450.67 MB 软件版本: 3.0 软件类型: 视频编辑 查看详情 直接下载 视频在我们的日常生活以及工作当中,都会占据很大的一部分内容,不管是看实时新闻,还是搞笑片段,视频所呈现出来 ...

  9. 如何用视频剪辑软件Vegas剪视频

    剪辑,在如今这个社会,已经不是剪辑师们的专利了,它已经成为了一种大众化且近乎是必备的技能.这项技能在很多场合都需要用到,例如广大视频博主的职业需要.各类大型宣传片的制作.企业介绍的视频,又或是一些节日 ...

  10. 几款视频剪辑软件 轻松完成视频编辑

    平常大家总会遇到视频剪辑与视频格式转换的问题,那么大家知道如何解决吗?今天,小编就给大家推荐几款手机和电脑实用的视频编辑软件,如下图.有了这几款软件,以后我们在手机或者电脑上剪辑视频就轻松多了,下面就 ...

最新文章

  1. hdu5296 01字典树
  2. HttpHand和HttpModule的详细解释,包括Asp.Net对Http请求的处理流程。
  3. 报告解读丨基于消费者洞察的鞋服品牌数字化营销新思路
  4. C++工作笔记-设计普通类的格式,实现简单工厂中接口的定义
  5. select函数返回值_Vue学习笔记之函数、高阶函数、v-model的应用
  6. 微服务 数据库耦合_mysql – 与其他服务共享的微服务数据库
  7. css border渐变_css边框渐变
  8. 视频编解码(一):编解码器cedarc/libcedarx编译工具链配置
  9. CAN通讯程序C语言,基于单片机的CANBUS程序(C语言)
  10. 1.2 px30驱动移植-网卡驱动调试思路
  11. ios带嗅探器的浏览器_浏览器嗅探器——WhichBrowser
  12. 宝宝纸尿裤怎么选?我联合2000位宝妈,对20款纸尿裤做了次测评
  13. 收到了CSDN送的图书,表示感谢|对《程序员的三门课》的一表格表示疑问
  14. 芒果超媒的2022年报:一半明媚,一半忧伤
  15. 【每日早报】2019/12/31
  16. 连续系统与离散系统的时域分析
  17. 【Linux】-- 操作系统进程的状态
  18. 每次启动电脑,基本都出现这个错误,很长时间的启动过程。
  19. 自然语言处理NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 BertViz
  20. spring线程池 java_Java 中几种常用的线程池

热门文章

  1. 微信登陆之生成微信二维码
  2. 学习搜狗workflow心路历程(1)Windows版本的环境搭建
  3. 高大上的数据可视化图表,只需6步就能完成
  4. 计算机网络谢希仁第七版课后习题答案(第七章)
  5. 两步就能使用pyqt制作软件界面,写一个基于you-get的windows端app
  6. html测试身高体重,【 身高体重测试】_如何测试_注意事项-大众养生网
  7. 简单体验阿里巴巴在线java诊断工具Arthas
  8. php7 yar扩展,php7安装yar扩展的方法详解
  9. 使用canvas绘制一个三角形
  10. 柬埔寨攻略―签证、机票