是用VLC API将RTSP流convert为视频文件

本文介绍了使用LibVLC库进行流媒体录制的过程,包括如何初始化LibVLC实例及设置必要的参数来完成录制任务。此外,还提供了具体的代码示例,并分享了作者在实现过程中的经验总结。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一直在文档中找不到,接口设计的也不大好。不过终于在stackoverflow上找到解决方案了。

 

原来在LIbVLC库实例化的时候就需要传递相关的参数。我的代码大致是这样实现:

 1 const char * vlc_args[] =
 2     {
 3         "--sout="
 4     };
 5 
 6     if ((m_vlcInsatnce = libvlc_new(sizeof(vlc_args)/sizeof(vlc_args[0]), vlc_args)) == NULL)
 7     {
 8         std::cerr << "Could not init VLC" << std::endl;
 9         exit(1);
10     }
11 
12 
13 //开始录制转换
14 QString sout = "#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128,deinterlace}:duplicate{dst=file{dst=" + m_recordFile + "}}";
15                 
16                 
17                 libvlc_vlm_add_broadcast(m_vlcInsatnce, media_name, m_url.toStdString().c_str(), sout.toStdString().c_str(), 0, NULL, true, true);
18                 libvlc_vlm_play_media(m_vlcInsatnce, media_name);
19 
20 //这里可以加入一些时间,录制时间
21 //停止录制
22 libvlc_vlm_stop_media(m_vlcInsatnce, media_name);
23             libvlc_vlm_del_media(m_vlcInsatnce, media_name);
24 
25             libvlc_vlm_release(m_vlcInsatnce);
View Code

 

详情可以参考我的Github上一个媒体播放器的代码:

https://github.com/AlexiaChen/MediaPlayer

 

 

references:

http://stackoverflow.com/questions/16515099/saving-a-stream-while-playing-it-using-libvlc

http://stackoverflow.com/questions/26464138/how-to-stream-raw-data-from-memory-using-libvlc-and-visual-studio-2008?rq=1

http://blog.youkuaiyun.com/xuplus/article/details/34081989

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值