0
我想用ffmpeg
合併幾個flv文件。 ffmpeg
需要文件中的格式列表:使用bash腳本以自然順序列出文件夾中的文件
file '/path/to/file1'
file '/path/to/file2'
file '/path/to/file3'
有了一些搜索和考驗,我已經想出了這一行命令:
ffmpeg -safe 0 -f concat -i <(for entry in "$(cd "$(dirname "$1")"; pwd)/$(basename "$1")"/*.flv;do echo "file '$entry'";done) -c copy output.flv
在括號中的腳本將生成的路徑列表到當前文件夾中的所有文件的詳細由ffmpeg
要求:
for entry in "$(cd "$(dirname "$1")"; pwd)/$(basename "$1")"/*.flv;do echo "file '$entry'";done
然而,按照字母順序這隻列表文件:
6846641-10.flv
6846641-11.flv
6846641-12.flv
6846641-13.flv
6846641-14.flv
6846641-15.flv
6846641-16.flv
6846641-17.flv
6846641-18.flv
6846641-19.flv
6846641-1.flv
6846641-20.flv
6846641-21.flv
6846641-22.flv
6846641-23.flv
6846641-24.flv
6846641-2.flv
6846641-3.flv
6846641-4.flv
6846641-5.flv
6846641-6.flv
6846641-7.flv
6846641-8.flv
6846641-9.flv
要正確合併視頻,我需要的文件,以自然順序排列如下:
天然有序的文件
正如圖片所示,文件需要按-
從1到24之後的數字排序,6846641-1.flv
在第一行,6846641-24.flv
在最後一行。而在這樣的格式,每行:
file '/mnt/c/Users/Oho/Desktop/save//6846641-xx.flv'
有沒有可能產生的ffmpeg
與bash腳本(在一個行,如果可以實現的)格式正確的名單?
編輯: 由於賽勒斯,修改後的代碼是在這裏,它的工作:
#!/bin/bash
for entry in "$(cd "$(dirname "$1")"; pwd)/$(basename "$1")"/*.flv
do
echo "file '$entry'" >> fileOutputList.temp
done
sort -t "-" -n -k 2 fileOutputList.temp > fileOutputListSorted.temp
ffmpeg -safe 0 -f concat -i fileOutputListSorted.temp -c copy output.flv
rm fileOutputList.temp
rm fileOutputListSorted.temp
請看一看:?當有人回答我的問題,我應該怎麼辦(HTTP://計算器.COM /幫助/人,答案) – Cyrus