标题: [文件操作] win 下使用 ffmpeg 大批量合并 ts 文件,求助 [打印本页]
作者: LKJHGFDSA 时间: 2018-7-12 06:26 标题: win 下使用 ffmpeg 大批量合并 ts 文件,求助
本帖最后由 LKJHGFDSA 于 2018-7-12 07:04 编辑
我需要把一个目录下的大量文件(名字非常规律的,都是 1.ts,2.ts,3.ts.......有一千多个文件)合并成一个文件,
我用的ffmpeg来合并的,用了十个文件做测试,发现很流畅,完全符合要求,当时现在的问题在于。。。。我怎么批量导入这1000多个文件呢。。。我做测试的时候用的下面的命令:
ffmpeg -i 1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts 1.ts
ffmpeg -i 2.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts 2.ts
ffmpeg -i 3.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts 3.ts
.........
ffmpeg -i "concat:1.ts|2.ts|3.ts|........" -c copy -bsf:a aac_adtstoasc -movflags +faststart output.mp4
我试着使用 * 通配符,不过提示找不到*.ts。。。。。加前缀也是不行,用绝对地址也不行。。。我估计是不是得用正则啥的了?。。。所以求助下各位了,谢谢
作者: 523066680 时间: 2018-7-12 08:49
本帖最后由 523066680 于 2018-7-12 09:18 编辑
我印象中 ts 文件是可以直接合并,不需要 ffmpeg 的
直接 copy /b *.ts output.ts ,但是上千个文件,名字从1开始,没有补0,可能顺序会出错。
可以批量重命名,在文件名编号前补0来确保顺序正确。
——
补充
参考:https://www.therandombits.com/135/how-to-combine-merge-mp4-videos-with-ffmpeg/
你可以用脚本列出文件名单保存到 files.txt 中,格式类似( "file "前缀是必须的):- file f1.mp4
- file f2.mp4
- file f3.mp4
复制代码
然后 ffmpeg -f concat -i files.txt ......
作者: LKJHGFDSA 时间: 2018-7-12 10:17
回复 2# 523066680
你说的这几种方式我都试过 合并后有问题
作者: 523066680 时间: 2018-7-12 10:32
按零请高明(逃
作者: 狄钦dQ 时间: 2018-7-14 00:08
ts合并用copy简单快捷,顺序问题用补零解决。
适用于上千的1.ts,2.ts,3.ts等文件,补零为0001.ts,0002.ts,0003.ts,再按正常顺序合并即可。- @echo off
- setlocal enabledelayedexpansion
- set /a n=10000
- set "fpath=D:\TsFolder"
- dir %fpath% /A-D /B>list.txt
- for /f "delims=" %%i in (list.txt) do (
- set /a num=%%~ni
- set /a fname=!num!+!n!
- ren "%fpath%\%%i" "!fname:~1!.ts"
- )
- copy /b "%fpath%\*.ts" output.ts
- pause
复制代码
作者: Batcher 时间: 2018-7-14 14:21
回复 3# LKJHGFDSA
合并后有什么问题?
作者: LKJHGFDSA 时间: 2018-7-15 08:27
回复 6# Batcher
有部分视频不能正常播放
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |