<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          libVLC 視頻截圖

          共 1609字,需瀏覽 4分鐘

           ·

          2020-08-12 13:17

          1

          截圖方式


          在觀看影視的過程中,經(jīng)常會出現(xiàn)一些精彩畫面,我們可以將它保存起來、分享給朋友、或者是用作桌面背景。。。這時候截圖就顯得非常重要。


          常見的截圖方式有以下幾種:


          • 使用 PrintScreen 鍵 ,截取整個屏幕的內(nèi)容。

          • 使用 Alt + Printscreen 鍵,截取當(dāng)前活動窗口的內(nèi)容。

          • 使用播放器內(nèi)置的截圖功能(一般會有相應(yīng)的截圖按鈕),截取當(dāng)前播放的畫面。


          很顯然,在絕大多數(shù)情況下,內(nèi)置的截圖功能是最佳選擇。因為無論是使用 PrintScreen 還是 Alt + Printscreen,都有可能會截取到與當(dāng)前畫面無關(guān)的內(nèi)容。


          那么,如何使用 libVLC 來實現(xiàn)這樣一個截圖功能呢?



          2

          主要接口


          截圖相對比較簡單,主要涉及一個核心 API:


          int?libvlc_video_take_snapshot(?libvlc_media_player_t?*p_mi,?unsigned?num,
          ????????????????????????????????const?char?*psz_filepath,?unsigned?int?i_width,
          ????????????????????????????????unsigned?int?i_height?)
          ;


          共有五個參數(shù),大概說一下各自的含義:


          • 參數(shù)一:p_mi,媒體播放器實例;

          • 參數(shù)二:num,視頻輸出的數(shù)量(通常為 0,指第一個);

          • 參數(shù)三:psz_filepath,保存截圖的文件/文件夾路徑;

          • 參數(shù)四:i_width,截圖的寬度;

          • 參數(shù)五:i_height,截圖的高度。


          需要注意一點,如果 i_width AND i_height 為 0,則使用原始大小;如果 i_width XOR i_height 為 0,則保留原始的寬高比。


          成功時返回值為 0,未找到視頻時為 -1。



          3

          實現(xiàn)方式


          下面,來播放一個本地視頻,并進行截圖:



          播放 10 秒吧,截圖并將其保存為名為 test.png 的圖片:


          int?main()
          {
          ????const?char?*?localMrl?=?"Sample.mkv";

          ????libvlc_instance_t?*instance;
          ????libvlc_media_player_t?*player;
          ????libvlc_media_t?*media;

          ????instance?=?libvlc_new(0,?nullptr);
          ????media?=?libvlc_media_new_path(instance,?localMrl);
          ????player?=?libvlc_media_player_new_from_media(media);
          ????libvlc_media_player_play(player);

          ????QThread::sleep(10);

          ????//?截圖
          ????libvlc_video_take_snapshot(player,?0,?"test.png",?0,?0);

          ????libvlc_media_release(media);
          ????libvlc_media_player_release(player);
          ????libvlc_release(instance);

          ????return?0;
          }


          當(dāng)程序退出之后,就能在當(dāng)前目錄下找到該圖片了(如上圖所示)。當(dāng)然了,也可以將上面的相對路徑(test.png)更改為絕對路徑(例如:E:/test.png)。


          ·END·
          ?

          作者:一去、二三里
          愛學(xué)習(xí),愛編程,愛生活。
          歡迎來撩,一起暢談程序人生!

          點個在看,么么噠!

          瀏覽 177
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久草视频免费播放 | 91传媒在线观看网站 | Huangse视频在线观看免费 | 内射美女网站 | 偷拍视频图片综合网 |