[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 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 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 "前缀是必须的):
  1. file f1.mp4
  2. file f2.mp4
  3. file f3.mp4
复制代码
然后 ffmpeg -f concat -i files.txt ......

TOP

回复 2# 523066680


    你说的这几种方式我都试过 合并后有问题

TOP

按零请高明(逃

TOP

ts合并用copy简单快捷,顺序问题用补零解决。
适用于上千的1.ts,2.ts,3.ts等文件,补零为0001.ts,0002.ts,0003.ts,再按正常顺序合并即可。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /a n=10000
  4. set "fpath=D:\TsFolder"
  5. dir %fpath% /A-D /B>list.txt
  6. for /f "delims=" %%i in (list.txt) do (
  7. set /a num=%%~ni
  8. set /a fname=!num!+!n!
  9. ren "%fpath%\%%i" "!fname:~1!.ts"
  10. )
  11. copy /b "%fpath%\*.ts" output.ts
  12. pause
复制代码

TOP

回复 3# LKJHGFDSA


    合并后有什么问题?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 6# Batcher


    有部分视频不能正常播放

TOP

返回列表