Vlc播放rtsp视频

Vlc播放rtsp视频,网上的例子不少,我看后觉得有点不足的地方,就是他们没有设置播放rtsp视频时的参数,

参数设置对播放网络视频是很重要的,如果设置不当,或不设置,可能你的程序就播放不了rtsp视频了。。。

---------------------------------------------------------------

说下开发步骤吧,挺简单的,我的环境:win7 64 + vs2010

首先当然是导入vlc的开发包了:

// vlc
#include "./vlc-2.2.1/include/vlc.h"
#pragma comment(lib, "./vlc-2.2.1/lib/libvlc.lib")
#pragma comment(lib, "./vlc-2.2.1/lib/libvlccore.lib")

-------------------------------------------------------------------------------------

然后定义3个播放rtsp视频时用到的参数:

   libvlc_media_t *m_vlcMedia;
    libvlc_media_player_t *m_vlcMplay;
    libvlc_instance_t *m_vlcInst;

-------------------------------------------------------------------------------

接下来就是播放rtsp视频的代码了:

[cpp]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. const char * const vlc_args[] = {  
  2.         "--demux=h264",  
  3.         "--ipv4",  
  4.         "--no-prefer-system-codecs",  
  5.         "--rtsp-caching=300",  
  6.         "--network-caching=500",  
  7.         "--rtsp-tcp",  
  8.         //"--verbose=2",  
  9.         //"--extraintf=logger"  
  10.     };  
  11.   
  12.     if (m_vlcInst == NULL)  
  13.     {  
  14.         m_vlcInst = libvlc_new(sizeof(vlc_args)/sizeof(vlc_args[0]), vlc_args);  
  15.     }  
  16.     if (m_vlcMedia == NULL)  
  17.     {  
  18.         //  "rtsp://127.0.0.1:1234/vedio"  
  19.         m_vlcMedia = libvlc_media_new_location(m_vlcInst, strRtspUrl.GetBuffer());  
  20.     }  
  21.     if (m_vlcMplay == NULL)  
  22.     {  
  23.         m_vlcMplay = libvlc_media_player_new_from_media(m_vlcMedia);  
  24.     }  
  25.   
  26.     HWND hWndVedio = GetDlgItem(IDC_STATIC_VEDIO)->GetSafeHwnd();  
  27.     libvlc_media_player_set_hwnd(m_vlcMplay, hWndVedio);  
  28.     libvlc_media_player_play(m_vlcMplay);  

--------------------------------------------------------------------------------------------

停止rtsp播放代码如下:

[cpp]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. if (m_vlcMplay != NULL)  
  2.     {  
  3.         libvlc_media_player_stop(m_vlcMplay);  
  4.         libvlc_media_player_release(m_vlcMplay);  
  5.         m_vlcMplay = NULL;  
  6.     }  
  7.     if (m_vlcMedia != NULL)  
  8.     {  
  9.         libvlc_media_release(m_vlcMedia);  
  10.         m_vlcMedia = NULL;  
  11.     }  


---------------------------------------------------------------------

当然,退出程序时,记得释放vlc资源哈:

[cpp]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. // 释放VLC资源  
  2.     if (m_vlcMplay != NULL)  
  3.     {  
  4.         libvlc_media_player_release(m_vlcMplay);  
  5.         m_vlcMplay = NULL;  
  6.     }  
  7.     if (m_vlcMedia != NULL)  
  8.     {  
  9.         libvlc_media_release(m_vlcMedia);  
  10.         m_vlcMedia = NULL;  
  11.     }  
  12.     if (m_vlcInst != NULL)  
  13.     {  
  14.         libvlc_release(m_vlcInst);  
  15.         m_vlcInst = NULL;  
  16.     }  

 

-----------------------------------------------------------------------------------

效果截图:



-----------------------------------------------------------------------------------

该demo代码下载地址:

Vlc播放rtsp视频demo-src.rar

http://download.csdn.net/detail/friendan/8707907


---------------------

rtsp视频地址:

    // rtsp://218.204.223.237:554/live/1/66251FC11353191F/e7ooqwcfbqjoo80j.sdp
    // rtsp://211.139.194.251:554/live/2/13E6330A31193128/5iLd2iNl5nQ2s8r8.sdp
    // rtsp://180.168.116.75:554/user=admin&password=&channel=1&stream=0.sdp?
    // rtsp://218.204.223.237:554/mobile/1/691C308E18976C87/8y1vfa435degrqk7.sdp
    // rtsp://218.204.223.237:554/live/1/6D1E43167B3A7BDA/oby9efo80duh9bjf.sdp
    // rtsp://218.204.223.237:554/live/1/0547424F573B085C/gsfp90ef4k0a6iap.sdp
    // rtsp://211.139.194.251:554/live/2/13E6330A31193128/5iLd2iNl5nQ2s8r8.sdp
  



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值