php封装多段mp4,解决ffmpeg将多段视频裁剪拼接后卡顿现象
合并
将下载的ts流名称按照顺序记录在一个txt文件中,然后使用命令
ffmpeg.exe -f concat -i ./your.txt -c copy ./output.mkv
ffmpeg.exe -i output.mkv output.mp4
步骤:
将整段视频转成ts流
ffmpeg -y -i abc.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb abc.ts
发现无论是直接截取mp4或者ts,前三秒都是卡顿状态
解决:截取时先对视频重新编码,再截取,编码时长只是针对要截取视频片段的长度
ffmpeg命令:ffmpeg -ss 00:01:00 -t 140 -i Y天屠龙记2019-14.mp4 -c:v libx264 -c:a aac -strict experimental
-b:a 98k out2.mp4
问题:这种方式jvm会一直占用着几个视频
原因:调用命令行后,程序可能正常运行 一会后,然后程序block住,后台进程ffmpeg还没死。Runtime.exec()执行时JVM会产生一个子进程,该进程与JVM建立三个通道链接:标准输入,标准输出,标准错误。Java本地的系统对标准输入和输出所提供的缓冲池有限,所以错误的对标准输出快速的写入和从标准输入快速的读入都有可能造成子进程死锁。子进程的输出流,也就是JVM的输入流。子进程不断向控制台输出,如果Java没有把输入流及时清空,会导致缓存区满,导致死锁。
解决:解决办法就是及时清空输入流,开两个线程把process.getInputStream()和process.getErrorStream()读出来就可以。对于ffmpeg只需要process.getErrorStream()读出来就可以了。
String line = "";
Process process = Runtime.getRuntime().exec(command);
BufferedReader br = new BufferedReader(new InputStreamReader(process.getErrorStream()));
while ((line = br.readLine()) != null) {
System.out.println(line);
}
process.waitFor();
将截取的视频片段名称写入到一个txt文本文档中
file 'out1.mp4'
file 'out2.mp4'
file 'out3.mp4'
file 'out4.mp4'
将mp4片段合并成一个视频
ffmpeg -f concat -i out.txt -c copy out.mp4
总结
控制器循环调用ffmpeg截取视频时,可以将生成的文件名追加到txt文本文档中,最后再统一合并。
php封装多段mp4,解决ffmpeg将多段视频裁剪拼接后卡顿现象相关推荐
- 视频损坏修复后卡顿声音画面口型不同步处理解决方法
视频修复后为什么会 出现卡顿.花屏.音画不同步? 视频损坏后经简单修复后经常遇到画面卡顿,甚至会有花屏,声音和视频画面(说话口型)不同步的情况,声音或者画面提早或者滞后出现,视觉效果上会有明显差别,是 ...
- 王者荣耀s22服务器未响应是什么意思,王者荣耀s22更新后卡顿怎么办 王者荣耀破晓版本进不去解决方法...
王者荣耀 大小:1.66GB 手机网游 王者荣耀s22更新后卡顿怎么办?王者荣耀手游今日更新了[破晓]版本,部分玩家在下载新版本后出现了卡顿的情况,加载进度条在45%的时候就直接卡死了.下面就让我们一 ...
- win10计算机更新后网络卡,Win10更新后卡顿怎么办,2018win10爆卡的解决办法
电脑5月份自从升级到Win10最新版后,电脑就变得卡--卡--卡--啦!问下身边的小伙伴,发现出现此类问题的人还不少.哪么Win10更新后卡顿怎么办,电脑 爆卡很影响工作和心情的,下面整理收集了一些有 ...
- 解决页面使用overflow: scroll在iOS上滑动卡顿的问题
解决页面使用overflow: scroll在iOS上滑动卡顿的问题 参考文章: (1)解决页面使用overflow: scroll在iOS上滑动卡顿的问题 (2)https://www.cnblog ...
- android帧动画卡顿现象,css3针对移动端卡顿问题的解决(动画性能优化)
一.使用css,jquery,canvas制作动画 1.Canvas 优点:性能好,强大,支持多数浏览器(除了IE6.IE7.IE8),画出来的图形可以直接保存为 .png 或者 .jpg的图形: 缺 ...
- 解决DeepLinux 15.8在I3 6100的核心显卡hd530播放视频隔1分钟卡顿几秒的问题
我的机器配置如下:lspci 00:00.0 Host bridge: Intel Corporation Skylake Host Bridge/DRAM Registers (rev 07) 00 ...
- unity打出apk包在模拟器上运行一段时间后卡顿卡死
笔者在开发unity游戏时,打出的apk包在模拟器上跑一段时间后卡顿卡死. 具体情况为,用安卓模拟器跑游戏,然后用电脑跑其他比较耗cpu的应用,一段时间后游戏帧数逐渐降低,直到0.000几帧,相当于游 ...
- 苹果升级后卡顿严重怎么解决
产品型号:iPhone 12 系统版本:iOS 14.7 苹果升级后卡顿严重有不同原因,需要针对不同原因进行不同方法来解决. 原因一:升级的时候手机会产生许多缓存,缓存过多的话就会占用太多内存空间,从 ...
- 王者荣耀s22服务器未响应是什么意思,《王者荣耀》s22卡顿解决方法 s22更新后卡顿怎么办...
王者荣耀s22更新后卡顿怎么回事?全新的版本已经开始了, 作为赛季初,一些问题出现也是避免不了的,我们在玩游戏的同时,可能多多少少会出现卡顿,每一次大更新版本必定会出现,而且这一次是比较特殊的版本,那 ...
最新文章
- Linux下查找Nginx配置文件位置
- 目前有没有好用的RNASeq的pipeline呢?
- 微积分学习笔记四:空间向量基础
- 【Google给毕业生的忠告】
- 八、图形与图像处理(2)
- VS2010项目的部署与安装
- Ubuntu:如何卸载 vmware player 或 VMWare Workstation
- Windows创建新账户进行登录
- 关于strict-origin-when-cross-origin404请求的问题
- SpringBoot集成Activiti
- 常见互联网公司职级和薪资一览,有条件的一定要进大厂,薪水是真高
- MsCOCO数据集标注详解
- 牛顿法、梯度下降法与拟牛顿法
- QQ虎年春节活动ADB自动助手(自动开星星,自动红包雨下拉,自动团圆饭,自动一笔连)
- 用计算机计算棋盘上麦粒,C棋盘上的麦粒 ——用电子表格自动计算 教学设计...
- HarmonyOS实战—可编辑的卡片交互
- 里加一列为1_米饭里加把藜麦米,低脂饱腹不长胖,不用节食,照样甩赘肉
- 12个学习 CSS3 网站布局设计的优秀案例
- linux pyautogui 安装_PyAutoGUI——让所有GUI都自动化
- 微信小程序(.wxapkg)源码包解包的方法