• 4770阅读
  • 2回复

qt +VLC 播放网络地址失败 [复制链接]

上一主题 下一主题
离线foxgod
 

只看楼主 倒序阅读 楼主  发表于: 2014-12-25
qt +VLC 播放网络地址失败?
提示的错误

main access debug: looking for access module matching "file": 20 candidates
filesystem access debug: opening file `C:\mycode5.2.1\build-Litter-qi-Desktop_Qt_5_3_0_MinGW_32bit-Debug\http:\\222.88.91.227\broadcast\sub?channel=910&id=ku6_live'
filesystem access error: cannot open file C:\mycode5.2.1\build-Litter-qi-Desktop_Qt_5_3_0_MinGW_32bit-Debug\http:\\222.88.91.227\broadcast\sub?channel=910&id=ku6_live (Invalid argument)
main access error: File reading failed
main access error: VLC could not open the file "C:\mycode5.2.1\build-Litter-qi-Desktop_Qt_5_3_0_MinGW_32bit-Debug\http:\\222.88.91.227\broadcast\sub?channel=910&id=ku6_live" (Invalid argument).
main access debug: no access modules matched
main input error: open of `file:///C:/mycode5.2.1/build-Litter-qi-Desktop_Qt_5_3_0_MinGW_32bit-Debug/http%3A%2F%2F222.88.91.227%2Fbroadcast%2Fsub%3Fchannel%3D910%26id%3Dku6_live' failed
main input error: Your input can't be opened
main input error: VLC is unable to open the MRL 'file:///C:/mycode5.2.1/build-Litter-qi-Desktop_Qt_5_3_0_MinGW_32bit-Debug/http%3A%2F%2F222.88.91.227%2Fbroadcast%2Fsub%3Fchannel%3D910%26id%3Dku6_live'. Check the log for details.
奇怪的是我给的地址是http://222.88.91.227/broadcast/sub?channel=910&id=ku6_live,为什么最后播放的地址多了我的工程目录呢,我的代码是
  1. #include "player.h"
  2. #include <QDebug>
  3. #include <QImage>
  4. #include <QDateTime>
  5. Play::Play(QObject *parent) :
  6.     QObject(parent)
  7. {
  8.     vlc_ins    = NULL;
  9.     vlc_player = NULL;
  10.     vlc_media  = NULL;
  11.     Init();
  12. }
  13. Play::~Play()
  14. {
  15.     libvlc_media_player_release (vlc_player);
  16.     libvlc_release (vlc_ins);
  17. }
  18. void Play::SetUrl( QString url )
  19. {
  20.     qDebug()<<"SetUrl";
  21.     fileUrl = url;
  22. //    fileUrl.replace("+","%2B");
  23. //    fileUrl.replace("/","%2F");
  24. //    fileUrl.replace("?","%3F");
  25. //    fileUrl.replace("%","%25");
  26. //    fileUrl.replace("#","%23");
  27. //    fileUrl.replace("&","%%26");
  28. //    fileUrl.replace("=","%3D");
  29. }
  30. void Play::Init()
  31. {
  32.     const char * const vlc_args[] = {
  33.               "-I", "dummy", /* Don't use any interface */
  34.               "--ignore-config", /* Don't use VLC's config */
  35.               "--extraintf=logger", //log anything
  36.               "--verbose=2", //be much more verbose then normal for debugging purpose
  37.               "--plugin-path=C:\\vlc\\plugins",
  38.               "--vout=x11" };
  39.     // init vlc modules, should be done only once
  40.     vlc_ins = libvlc_new (sizeof(vlc_args) / sizeof(vlc_args[0]), vlc_args);
  41.     // Create a media player playing environement
  42.     vlc_player = libvlc_media_player_new(vlc_ins);
  43. }
  44. bool Play::InitVideoPlayer()
  45. {
  46. }
  47. void Play::OpenMedia()
  48. {
  49.     qDebug()<<"OpenMedia()"<<fileUrl.toStdString().data();
  50.     //vlc_media = libvlc_media_new_path(vlc_ins, "rtp://@:2626");
  51.     vlc_media = libvlc_media_new_path(vlc_ins, fileUrl.toStdString().data());
  52.     libvlc_media_player_set_media (vlc_player, vlc_media);
  53. }
  54. void Play::PlayVideo()
  55. {
  56.     libvlc_media_player_play (vlc_player);
  57.     qDebug()<<"PlayVideo()";
  58. }
  59. void Play::PauseVideo()
  60. {
  61.     libvlc_media_player_pause (vlc_player);
  62. }
  63. void Play::StopVideo()
  64. {
  65.     libvlc_media_player_stop (vlc_player);
  66. }

请高手指导我那里错了,说明下,我给的这个网络地址在VLC播放器里面是可以播放的。
离线liudianwu

只看该作者 1楼 发表于: 2014-12-28
可以播放的


可以参见http://www.qtcn.org/bbs/read-htm-tid-58116.html
欢迎关注微信公众号:Qt实战/Qt入门和进阶(各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发) QQ:517216493  WX:feiyangqingyun  QQ群:751439350
离线jql136

只看该作者 2楼 发表于: 2015-07-03
楼主问题解决了吗
快速回复
限100 字节
 
上一个 下一个