T-Bagwell 发表于 2016-9-8 00:00:52

用ffmpeg创建多个program的ts

首先分析需要创建多个program(节目),然后查看需要导入的流的内容:
ffmpeg -i INPIT1 -i INPUT2 -i INPUT3 .....多少个都可以,我们举个例子,导入两个文件
那么就
ffmpeg-i INPUT1 -i INPUT2
ffmpeg -i ~/Movies/objectC/facebook.mp4 -i ~/Movies/bbs.chinaffmpeg.com孙悟空.mp4

输出信息如下:


可以看到里面包含了四个流

Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x480, 797 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 87 kb/s (default)
    Stream #1:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 480x268, 1038 kb/s, 24 fps, 24 tbr, 90k tbn, 48 tbc (default)
    Stream #1:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 148 kb/s (default)

使用ffmpeg的-map参数,可以将四个流排列输出

可以看到四路流分别是0:1 0:2 0:3 0:4,那么接下来可以考虑做program了参考program的说明
-program st=stream[:st=stream...] (output)
Creates a program with the specified title, program_num and adds the specified stream(s) to it.


使用如下参数,可以创建两个program(节目)ffmpeg -i ~/Movies/objectC/facebook.mp4 -i ~/Movies/guanlangaoshou.mp4 -map 0:0 -map 0:1 -map 1:0 -map 1:1 -c copy -program title=CCTV1:program_num=1:st=0:st=1 -program title=CCTV2:program_num=2:st=2:st=3 -y -f mpegts bbs.chinaffmpeg.com孙悟空.ts

可以看命令行执行后的结果:

页: [1]
查看完整版本: 用ffmpeg创建多个program的ts