在腾讯客户端上发现好的电影又想保留,下载后发现里面竟然是ts格式的而且分了近700个P!!!!
于是发现了万能的ffmpeg大法
#!/bin/sh
mkdir -p tsmov
#用find找出所有ts文件,当然mp4等其他格式也行,这里可以视情况而修改成*.mp4.然后把找到的符合规则的视频文件转移到tsmov文件夹下.
find -name "*.ts"| xargs -i mv {} tsmov
cd tsmov
#下面就是生成filelist.txt视频名字列表.注意我这里缓存视频文件是从0.ts到699.ts,如果你的缓存是其他名称可能还要批量改名字.我这里没写批量改名字的命令,因为我不需要.
each=0
#这个循环里面的数子694是需要手动修改的,如果缓存是899就改成你的缓存文件的实际数.
while(( $each <= 694 ))
do
echo file \'$each.ts\'
let "each++"
done > filelist.txt
#这才是ffmpeg最终执行的合并命令,上面的只是准备条件.
ffmpeg -f concat -i filelist.txt -c copy -bsf:a aac_adtstoasc output.mkv
保存为mege_video.sh 给这个脚本权限就能执行了
于是发现了万能的ffmpeg大法
#!/bin/sh
mkdir -p tsmov
#用find找出所有ts文件,当然mp4等其他格式也行,这里可以视情况而修改成*.mp4.然后把找到的符合规则的视频文件转移到tsmov文件夹下.
find -name "*.ts"| xargs -i mv {} tsmov
cd tsmov
#下面就是生成filelist.txt视频名字列表.注意我这里缓存视频文件是从0.ts到699.ts,如果你的缓存是其他名称可能还要批量改名字.我这里没写批量改名字的命令,因为我不需要.
each=0
#这个循环里面的数子694是需要手动修改的,如果缓存是899就改成你的缓存文件的实际数.
while(( $each <= 694 ))
do
echo file \'$each.ts\'
let "each++"
done > filelist.txt
#这才是ffmpeg最终执行的合并命令,上面的只是准备条件.
ffmpeg -f concat -i filelist.txt -c copy -bsf:a aac_adtstoasc output.mkv
保存为mege_video.sh 给这个脚本权限就能执行了