Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在ios应用程序中播放RTSP url_Ios_Swift_Rtsp - Fatal编程技术网

如何在ios应用程序中播放RTSP url

如何在ios应用程序中播放RTSP url,ios,swift,rtsp,Ios,Swift,Rtsp,我在stack overflow中发现了许多关于使用FFmpeg和github for DFURTSPPlayer的链接的建议,但它不是编译的。但是在整合了FFmpeg之后,我要写什么呢?假设我有HTTP URL,那么我写: 代码 moviePath=“http:/path.mp4” movieURL=NSURL.URLWithString(moviePath!) moviePlayer=MPMoviePlayerController(contentURL:movieURL) 电影播放器!。播放

我在stack overflow中发现了许多关于使用FFmpeg和github for DFURTSPPlayer的链接的建议,但它不是编译的。但是在整合了FFmpeg之后,我要写什么呢?假设我有HTTP URL,那么我写:

代码

moviePath=“http:/path.mp4”
movieURL=NSURL.URLWithString(moviePath!)
moviePlayer=MPMoviePlayerController(contentURL:movieURL)
电影播放器!。播放()

那么对于使用RTSP URL,我应该写什么样的代码呢?

是另一篇文章,它有一个接收RTSP流的示例FFmpeg代码(这篇文章还将流解码为YUV420,存储在
pic
中,然后将帧转换为RGB24,存储在
picrgb
中并将其写入文件)。因此,要实现与HTTP类似的功能,您应该:

1) 为FFmpeg C代码编写一个包装器Objective-C类,或者只将代码包装在将直接从Objective-C代码调用的函数中。您应该有办法将RTSPURL传递给类或函数,并为新帧提供回调。在类/函数中,启动一个新线程,该线程将实际执行与示例中的代码类似的内容,并为每个新解码帧调用回调注意:FFmpeg有一种使用自定义IO上下文执行异步I/O的方法,这实际上可以避免创建线程,但是如果您是FFmpeg新手,可以从基础开始,然后改进代码


2) 在回调中,更新视图或您用于显示解码帧数据的任何内容。

我是FFmpeg新手,从哪里可以获取代码以及如何操作?这对我有帮助吗?嗯,您需要iOS的FFmpeg二进制文件或二进制文件的包装器-请看。如果这不适合您,您应该自己构建二进制文件(这里是一个iOS构建脚本-),然后编写类似于Xcode项目答案中链接中的代码。