是用VLC API將RTSP流convert為視頻文件


一直在文檔中找不到,接口設計的也不大好。不過終於在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.csdn.net/xuplus/article/details/34081989

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM