mfc接收udp组播264视频流

本文介绍了如何使用MFC结合ffmpeg库,通过UDP接收H.264视频流,并利用SDL进行解码和播放。首先,通过文本编辑框接收UDP的URL地址和端口,然后利用ffmpeg的avformat_open_input打开数据流,依次进行解码流程,包括注册格式和CODEC、打开输入、查找流信息、选择视频流、找到解码器、打开解码器、分配解码帧内存、读取和解码帧数据。解码完成后,利用SDL的播放流程显示视频,涉及SDL相关函数的调用和处理。
摘要由CSDN通过智能技术生成

使用ffmpeg和sdl进行264视频解码和播放,使用文本编辑框接收URL地址和端口(客户端的IP地址和端口)。定义一个全局变量CString url保存客户端的IP地址和端口m_port,端口是int类型
GetDlgItemText(IDC_EDIT1,url);//获取文本编辑框中的CString类型的IP地址
GetDlgItemText(IDC_EDIT2,port);//获取文本编辑框中的端口
int m_port=_ttoi(port);//转化为int类型
url.Format(_T("%s:%d"),url,m_port);

高版本的ffmpeg中的avformat_open_input函数可以用来打开实时视频数据流(同打开视频文件方法相同)

avformat_open_input(&pFormatCtx,url, NULL, NULL)

然后按照ffmpeg中解码视频的流程开始就OK了。ffmpeg解码的流程:
1. 注册所有容器格式和CODEC:av_register_all()
2. 打开url/文件:av_open_input_file()
3. 获取流信息:av_find_stream_info()
4. 从中查找视频流:AVMEDIA_TYPE_VIDEO
5. 查找对应的解码器:avcodec_find_decoder()
6. 打开解码器:avcodec_open2()
7. 为解码帧分配内存:avcodec_alloc_frame()
8. 从码流中提取出帧数据:av_read_frame()
9. 判断帧的类型,对于视频帧调用:avcodec_decode_video2()
10. 解码完后,释放解码器:avcodec_close()
11. 关闭输

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值