ffmpeg获取rtsp流并解析成矩阵,给我写一段C语言代码
时间: 2023-02-23 16:55:04 浏览: 111
以下是一段C语言代码供参考:// 声明一个AVFormatContext结构体指针
AVFormatContext *pFormatCtx;// 声明一个AVCodecContext结构体指针
AVCodecContext *pCodecCtx;// 打开rtsp流
if(avformat_open_input(&pFormatCtx, rtsp_url, NULL, NULL) != 0) {
return -1;
}// 检索流信息
if(avformat_find_stream_info(pFormatCtx,NULL) < 0) {
return -1;
}// 根据流信息查找解码器
if(av_find_best_stream(pFormatCtx, AVMEDIA_TYPE_VIDEO, -1, -1, NULL, 0) < 0) {
return -1;
}// 初始化解码器上下文
if(avcodec_open2(pCodecCtx, pCodec, NULL) < 0) {
return -1;
}// 开始解码
if(avcodec_decode_video2(pCodecCtx, pFrame, &got_picture, &packet) < 0) {
return -1;
}// 将视频帧转换成矩阵
if(sws_scale(img_convert_ctx, (const uint8_t* const*)pFrame->data, pFrame->linesize, 0, pCodecCtx->height, pFrameRGB->data, pFrameRGB->linesize) < 0) {
return -1;
}
阅读全文