使用ffmpeg合并视频遇到的坑

下面以Linux环境介绍为主

1.ffmpeg可执行命令不同的环境是不同的,Linux在执行命令前还需要授权。

2.合并视频命令:

主要命令: {} -f concat -auto_convert 0 -safe 0 -i {} -y -c:v copy  

坑一:其中第一个花括号替换的是可执行命令所在的绝对路径,这里必须要使用ffmpeg的绝对路径,因为把应用打成jar包是无法获取到绝对路径的,具体可参考:Jar包启动通过ClassPathResource获取不到文件路径问题_classpathresource找不到文件_DanceDonkey的博客-CSDN博客

解决:但是我的可执行文件又无法使用流的方式读取,所以只能让运维把ffmpeg的可执行文件放到生产环境一个固定路径。

坑二:第二个花括号的值 =》是将原来多个视频的路径放到一个txt文件里面,这个值就是这个txt文件的决定路径。

之前我是将原多个视频的路径一个个跟在填充到第二个花括号里面,类似这种

发现一直保存,找不到文件。最后发现必须将这两个mp4的绝对路径按照一定的格式写入到txt文件中,然后把花括号替换这个txt文件的绝对路径才不会报错。

 

 坑三:

 使用Runtime.getRuntime().exec 执行命令,发现这个命令是异步的,意思是大文件视频还没合成完,主线程就已经执行完了,这显然是不能接受的,于是加了一行

process.waitFor(); 测试环境验收完毕,已经就这样结束了,到生产才发现只要执行合并命令就会卡死,最后参考了这个贴子才解决

https://www.cnblogs.com/163yun/p/9878915.html

java关于ffmpeg推流停止的问题_ffmpeg停止推流_qq_35629433的博客-CSDN博客

 

关于ffmpeg的可执行包已上传

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值