ffmpeg Operation not permitted 报错的解决过程记录
问题重现
由于视频的录制过程出现了一些小问题,需要重新将视频文件切割和合并,找了几个视频编辑软件来做这个事情,最终的结果都不是特别满意,当时已经挺晚的了,本来打算上床睡觉第二天再去想辙,从椅子上起身的时候忽然想到了 ffmpeg 这个工具,挺久之前在工作中用它做了一个视频切割相关的功能,于是赶紧把它安装和配置好,视频切割的时候倒还顺利,在进行视频合并的时候出现了题目中的这个问题:
Operation not permitted
我把当时的相关文件都放在这里,如下图所示:
我需要把图中 27-end.mp4 和 27-head.mp4 两个视频文件合并成一个视频文件,ffmpeg 需要的 txt 文件也如上图所示,将需要合并文件的目录放在文件里即可,因为是在当前目录执行的 cmd 命令,所以就直接将目录设置为当前目录了。
当时执行的视频合并命令如下:
ffmpeg -f concat -i list.txt -c copy lesson-27.mp4
但是得到的结果如下:
问题解决过程
权限问题
看到这个错误之后,我以为是文件权限的问题,于是右键“管理员取得所有权”,之后还是报这个错,后来把文件目录写成绝对路径,也依然没用,陷入僵局....
网上搜答案
自己没解决,赶紧到网上看看有没有其他人碰到这个问题,查了一圈,问题是有类似的,但是解决方案都没有,又凉了,也因此我在解决之后写了这篇文章。
换个思路
大家可以再看一眼上图中的报错,在 Operation not permitted
错误上面还有一个Unsafe file name
的错误,于是我看了一下 ffmpeg 的文档,最终发现可以在命令行中添加 -safe 参数来避免这个问题,赶紧就去试了一次,最终将文件合并成功,执行的命令如下:
ffmpeg -f concat -safe 0 -i list.txt -c copy lesson-27.mp4
小总结
因为在网络上没有查到这个问题的解决方法,也看到很多朋友同样在搜这个问题,所以整理了这篇文章,有碰到类似问题的朋友可以参考一下。
推荐一下本人近期维护的开源项目:
Spring Boot 开源电商项目(含商城端和后台管理系统):https://github.com/newbee-ltd/newbee-mall
Spring Boot + Vue 前后端分离商城项目:https://github.com/newbee-ltd/newbee-mall-vue-app
除注明转载/出处外,皆为作者原创,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
第一次,当它本可进取时,却故作谦卑;
第二次,当它空虚时,用爱欲来填充;
第三次,在困难和容易之间,它选择了容易;
第四次,它犯了错,却借由别人也会犯错来宽慰自己;
第五次,它自由软弱,却把它认为是生命的坚韧;
第六次,当它鄙夷一张丑恶的嘴脸时,却不知那正是自己面具中的一副;
第七次,它侧身于生活的污泥中虽不甘心,却又畏首畏尾。