将两个mpeg-2传输流文件合并到iOS上的一个媒体文件中

时间:2011-11-11 12:10:28

标签: iphone ios avfoundation mpeg2-ts avurlasset

媒体文件分段器是Apple提供的工具 它可以将一个媒体文件划分为一系列用于HTTP Live Streaming的小型mpeg-2传输流文件

现在,我想做一个反向工作:将所有mpeg-2传输流文件合并到一个媒体文件(mp4)中供iPhone播放

我一直在尝试使用AVFoundation课程 - AVURLAssetAVMutableCompositionAVMutableCompositionTrack等。 我的代码如下:

AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:mpeg2tsMediaURL];
NSLog("duration: %lld", [asset duration].value); // shows empty duration here

我尝试打印其他属性,如AudioTrack,VideoTrack 所有属性都是空的,资产是一个空对象 当我将mpeg2tsMediaURL切换到正常的mp4文件URL时,它可以正确显示属性。 因此,它无法使用AVFoundation类来完成这项工作。

欢迎任何建议。感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用tsMuxeR组合MPEG传输流文件。

使用GUI组合TS文件:

  1. 点击"添加"按钮添加第一个文件。
  2. 点击"加入"按钮并选择第二个文件。点击"加入"再次按钮以选择第三个文件等(不幸的是,从版本2.6.12开始,您必须单独加入每个文件。如果文件很多,您可能需要使用命令行工具。)
  3. 应自动为您选择输出文件名,但您可以在"输出"中更改输出文件路径。部分。
  4. 点击"启动多路复用"按钮。