是否可以使用AVAssetWriter将广播样本编码为MPEG-ts或fmp4文件?

时间:2018-07-24 13:57:33

标签: ios avassetwriter mpeg replaykit fmp4

我知道这是一个常见问题,没有简单的解决方案。

找到了一个具有相同功能的演示-http://blog.denivip.ru/index.php/2017/01/live-streaming-on-ios/?lang=en,但未使用AVAssetWriter。

人们还建议使用bento4库,但我希望能够以编程方式进行操作,而无需创建新进程,也不必创建新文件并使用AVAssetWriter即可。

如果不可能,为什么IOS没有内置支持使用示例使用AVAssetWriter创建那些文件?

RTSP是Apple建议用于实时流传输的唯一选择吗?

1 个答案:

答案 0 :(得分:0)

回答我的问题。

  1. 使用AVAssetWriter创建mp4文件序列。
  2. 在读取文件以写入套接字时,请使用qt-faststart创建mp4文件的可流版本。这是Java等效项-https://github.com/ypresto/qtfaststart-java/tree/master/src/main/java/net/ypresto/qtfaststart

不能要求像ios这样的东西。

EDIT#1:可悲的是,许多mp4文件似乎最后都没有moov原子。因此,回到正题。有什么方法可以迫使AVAssetWriter至少在结尾处始终写moov原子(如果不是开始的话)?

EDIT#2:中提琴!看起来苹果确实支持该功能。看到:https://developer.apple.com/documentation/avfoundation/avassetwriter/1389811-shouldoptimizefornetworkuse?language=objc和这个:What does shouldOptimizeForNetworkUse actually do?