問題重現
由於視頻的錄制過程出現了一些小問題,需要重新將視頻文件切割和合並,找了幾個視頻編輯軟件來做這個事情,最終的結果都不是特別滿意,當時已經挺晚的了,本來打算上床睡覺第二天再去想轍,從椅子上起身的時候忽然想到了 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
小總結
因為在網絡上沒有查到這個問題的解決方法,也看到很多朋友同樣在搜這個問題,所以整理了這篇文章,有碰到類似問題的朋友可以參考一下。