下载开发包:http://download.videolan.org/pub/videolan/vlc/
本人下的是最新版本的3.0.7.1如下:
解压后定位到文件夹的“sdk”目录下,可以看到“include”和“lib”两个文件夹,这正是我们想要的东西。
用VS新建C++工程后把这两个文件夹扔进去,然后配置环境:
1.项目->属性->C/C+±>常规->附加包含目录->".\include"
2.项目->属性->链接器->常规->附加库目录->".\lib"
3.项目->属性->链接器->输入->附加依赖项->“libvlc.lib libvlccore.lib”
4.在include\vlc\vlc.h文件的头部加上“typedef __int64 ssize_t;”,如下:
#ifndef VLC_VLC_H
#define VLC_VLC_H 1
typedef __int64 ssize_t;
5.把前面下载的vlc程序包的“libvlc.dll”、“libvlccore.dll”和“plugins”文件夹拷贝到工程目录中
完成以上工作后,环境配置就完成了。写入如下代码即可搭建一个简单的rtsp视频推送服务器。
#include <Windows.h>
#include "vlc/vlc.h"
int main(int argc, char** argv)
{
libvlc_instance_t* vlc;
const char* url;
const char* sout = "#rtp{sdp=rtsp://192.168.1.106:8888/s}";
const char* media_name = "Player";
url = "E:\\2.5\\ffmpegbin\\1.mp4";
vlc = libvlc_new(0, NULL);
libvlc_vlm_add_broadcast(vlc, media_name, url, sout, 0, NULL, true, false);
libvlc_vlm_play_media(vlc, media_name);
while (1)
{
Sleep(100000);
}
libvlc_vlm_stop_media(vlc, media_name);
libvlc_vlm_release(vlc);
return 0;
}
服务器运行起来后,可用ffplayer播放:
.\ffplay.exe rtsp://192.168.1.106:8888/s
或者用VLC打开网络串流播放即可。
需要注意的问题
1.这里推流不能推h264裸流,否则问题很严重,会花屏,帧率输出异常等,坑死人!!!
2.该代码在Win7 64位下推送会有花屏的情况产生,原因不明,建议在Win10下使用。