Eri*_*c_G 5 iphone video-capture ios
我想尽可能快地找到从iPhone(iOS5)上传视频的最佳方式 - 如果可能的话,实时.
我发现之前的问题和答案非常有用.
从iPhone流式传输视频
但它给我留下了几个悬而未决的问题.我没有足够的代表在这个问题上发表评论 - 我认为我的问题无论如何都超出了原始问题的范围.
所以:
使用AVCaptureSession/AVAssetWriter并将视频切成短片是从iPhone快速移动(压缩)视频的最佳方式 - 几乎实时?
如果是这样,有人可以提供有关如何使用两个AVAssetWriters和后台队列的更多细节,以避免丢失(正如用户Steve McFarlin在上面引用的问题中提到的那样)?我不清楚从一个AVAssetWriter到另一个AVAssetWriter的切换是如何工作的......
(严重)有没有一种简单的方法可以将切碎的视频文件追加到一个完整的视频中......或者至少能够像播放一个完整的视频一样播放它们?我需要将较小的文件合并为服务器和iPhone上的一个文件(用于预览).
谢谢你的帮助...
好吧,您可以尝试在手机上进行缓冲,但这对我来说似乎适得其反,因为它的内存有限。我会尝试设置 AVCaptureSession 并使用 AVCaptureVideoDataOutput ,它将在单独的dispatch_queue线程上将帧出售给您(如果设置,它将作为 MPEG 帧出售它们)。该线程可以将帧交给异步套接字进行传输,可能带有一个指示帧编号和视频格式的小标头。或者,您可以通过队列将数据交给发送线程,这将让您监视有多少帧正在等待传输。
在接收服务器上,您需要创建一个小缓冲区(例如几秒钟),并在帧不按顺序到达时对帧进行重新排序。
最大的问题是检测带宽并知道何时降低质量,这样您就不会出现积压的数据包等待发送的情况。这是一个完全不同且复杂的主题:)关键在于您选择编解码器、质量和视频大小……这将直接确定实时传输帧所需的带宽。AVVideoCodecH264 在某些模式下受硬件支持,并且可能是实时编码的唯一现实选择。
我认为您不会为此找到现成的示例,因为它需要大量工作才能正常工作。