VLC读取H264网络视频流的问题!!请教各位前辈

lanjian1111 2014-03-31 09:28:00
参考:http://blog.sina.com.cn/s/blog_62949ff40101edml.html
1.到http://www.videolan.org/ 下载最新的vlc windows版本,我下的是vlc2.1.0
2.安装解压
3.在网上找到stdint.h 放到C:\Program Files\Microsoft Visual Studio 9.0\VC\include下
4.建立vs2010的win32工程
5.到vlc的安装目录下将sdk拷贝到建立的win32工程目录下,设置头文件和库的目录
6.在代码里
#include <time.h>
#include "vlc/vlc.h"
#pragma comment(lib, "libvlc.lib")
#pragma comment(lib, "libvlccore.lib")
int PlayVideo(char* file)
{
libvlc_instance_t * inst;
libvlc_media_player_t *mp;
libvlc_media_t *m;

// init vlc modules, should be done only once
inst = libvlc_new (0, NULL);

// Create a new item
m = libvlc_media_new_path (inst, file);

// Create a media player playing environement
mp = libvlc_media_player_new_from_media (m);
libvlc_media_parse(m);
libvlc_time_t duration = libvlc_media_get_duration(m);

// No need to keep the media now
libvlc_media_release (m);
#if 1
// This is a non working code that show how to hooks into a window,
// if we have a window around
// libvlc_drawable_t drawable = xdrawable;
// or on windows
void *drawable = &g_hwnd;
libvlc_media_player_set_hwnd (mp, drawable);
#endif
// play the media_player
libvlc_media_player_play (mp);

Sleep((DWORD)duration); // Let it play a bit

// Stop playing
libvlc_media_player_stop (mp);

// Free the media_player
libvlc_media_player_release (mp);
libvlc_release (inst);

return 0;
}
到vlc的安装目录下将plugins目录拷贝到可执行程序目录下, 然后调用PlayVideo(视频文件目录),
即可播放视频文件
注:因为vlc是随机调用不同输出方式(win32、opengl、direct)播放视频文件,为了指定特定的输出方式,
只需到plugins\video_output下删除多余的动态库,留下需要的库,比如我要用win32播放视频,就只留下libwingdi_plugin.dll即可,用VS2010建立项目,按照上面的方法成功建立项目,PlayVideo("E:\\TDDOWNLOAD\\1.rmvb");这样调用没有任何问题!
但是我把路径修改成网络视频流就不行了PlayVideo("rtmp://112.91.185.153/test/crvod1");

控制台提示打开路径错误,请问VLC打开网络视频流还要做其它设置么,我在VLC菜单中选择打开网络视频流用这个视频地址是可以观看网络视频流的,代码中还需做其它的设置么,还是打开网络视频流的时候不能用 libvlc_media_new_path
...全文
3454 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
小羽1 2016-11-06
  • 打赏
  • 举报
回复
楼主,还在吗?能说一下,您是怎么解决的最后
yinjie33 2014-08-29
  • 打赏
  • 举报
回复
楼主还实现了啊,我最近也在做这个,可否告诉我如何读取H264网络视频流?
illhan98 2014-04-04
  • 打赏
  • 举报
回复
可以参考VLC-android
medal2004 2014-04-03
  • 打赏
  • 举报
回复
vlc_media = libvlc_media_new_location(vlc_ins, (LPCTSTR)csUrl); vlc_player = libvlc_media_player_new(vlc_ins); libvlc_media_player_set_media(vlc_player, vlc_media); libvlc_media_player_set_hwnd(vlc_player,(void*)m_static1.GetSafeHwnd()); libvlc_media_player_play(vlc_player);
lanjian1111 2014-04-02
  • 打赏
  • 举报
回复
引用 2 楼 medal2004 的回复:
播放网络流用 libvlc_media_new_location,代替 libvlc_media_new_path。
还有其它地方要替代的么,这样替代了不会报打不开文件了,但是播放不了,程序卡住了,不知道是什么原因
lanjian1111 2014-04-02
  • 打赏
  • 举报
回复
引用 2 楼 medal2004 的回复:
播放网络流用 libvlc_media_new_location,代替 libvlc_media_new_path。
好的,我试试看
medal2004 2014-04-02
  • 打赏
  • 举报
回复
播放网络流用 libvlc_media_new_location,代替 libvlc_media_new_path。
lanjian1111 2014-04-01
  • 打赏
  • 举报
回复
没有人知道啊

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧