首页 > 代码库 > iOS使用ffmpeg播放rstp实时监控视频数据流
iOS使用ffmpeg播放rstp实时监控视频数据流
一、编译针对iOS平台的ffmpeg库(kxmovie)
git clone git://github.com/kolyvan/kxmovie.git
cd kxmovie
git submodule update --init
rake
ViewController *vc; vc = [KxMovieViewController movieViewControllerWithContentPath:path parameters:nil]; [self presentViewController:vc animated:YES completion:nil];
[rtsp @ 0x906cc00] UDP timeout, retrying with TCP
[rtsp @ 0x906cc00] Nonmatching transport in server reply
[rtsp @ 0x906cc00] Could not find codec parameters for stream 0 (Video: h264): unspecified size
Consider increasing the value for the ‘analyzeduration‘ and ‘probesize‘ options
Couldn‘t find stream information
跟踪代码,错误是在avformat_find_stream_info获取流信息失败的时候的时候触发。
if(avformat_find_stream_info(pFormatCtx,NULL) < 0) {
av_log(NULL, AV_LOG_ERROR, "Couldn‘t find stream information\n");
goto initError;
}
……
// Open video file
pFormatCtx = avformat_alloc_context();
//有三种传输方式:tcp udp_multicast udp,强制采用tcp传输
AVDictionary* options = NULL;
av_dict_set(&options, "rtsp_transport", "tcp", 0);
if(avformat_open_input(&pFormatCtx, [moviePathcStringUsingEncoding:NSASCIIStringEncoding], NULL,&options) != 0) {
av_log(NULL, AV_LOG_ERROR, "Couldn‘t open file\n");
goto initError;
}
// Retrieve stream information
if(avformat_find_stream_info(pFormatCtx,NULL) < 0) {
av_log(NULL, AV_LOG_ERROR, "Couldn‘t find stream information\n");
goto initError;
}