Qt4编程控制mplayer嵌入自定义界面监控或视频显示

2019-07-13 03:38发布

   在各种努力下,终于解决了这个说大说不小的问题,可编程嵌入第三方视频软件mplayer到界面中,并控制其大小和位置。   思路是使用QProcess,开启Mplayer进程,将其在Qt代码中以后台方式执行。   经过搜索网络及查看Linux manu,Mplayer后台运行的终端指令为-slave,但这个参数在多次尝试下未能成功。同时,通过往运行的界面窗口中加入视频监控是可以成功的,查看正在运行窗口ID的Shell指令为xwininfo。    //展开视频#define VIDEO_0 /dev/video0#define VIDEO_1 /dev/video1 str1 = "mplayer -tv driver=v4l2:device="+(QString)VIDEO_0; str2 = "mplayer -tv driver=v4l2:device="+(QString)VIDEO_1; mstr = ":noaudio:input=2:norm=I:outfmt=I420 tv:// -wid "; ws1 = QString::number(w1->winId()); ws2 = QString::number(w2->winId()); p_1->start(str1+mstr+ws1); p_2->start(str2+mstr+ws2); 就这么简单,开启的指令为-tv,嵌入界面的指令为-wid,获得界面id,作为-wid的参数即可,注意I与L的区别,有时慌乱中容易出现很诡异的错误,转了一圈又回到原点,调代码就是在转圈圈前进的过程。