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