成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何在 Linux 下使用 DLNA 投屏

系統 Linux
我用 Python + FFmpeg + DLNA 完成了一個在 Linux 下的投屏方案。這個方案的不足是延遲有點大。


編者按:本文系 Linux 中國公開投稿計劃所接受的第一篇投稿,而且投稿作者是一位初中學生,讓我們為他點贊!


一般來說,安卓設備和 Windows 設備投屏使用的是 miracast 協議,但是該協議要求網卡支持 p2pwifi,而 Linux 下大多數網卡驅動不支持 p2pwifi。

于是我用 Python + FFmpeg + DLNA 完成了一個在 Linux 下的投屏方案。這個方案的不足是延遲有點大。

設置

下面是如何實現。

先裝這個 DLNA 庫:

pip3 install dlna


然后用 ??pactl?? 查找 “監視器信源”(中文輸出) 或 “Monitor Source”(英文輸出):

pactl list sinks


示例輸出:

Sink #0
State: RUNNING
Name: alsa_output.pci-0000_05_00.6.HiFi__hw_Generic_1__sink
Description: Family 17h (Models 10h-1fh) HD Audio Controller Speaker + Headphones
Driver: module-alsa-card.c
Sample Specification: s16le 2ch 44100Hz
Channel Map: front-left,front-right
Owner Module: 9
Mute: no
Volume: front-left: 53814 / 82% / -5.14 dB, front-right: 53814 / 82% / -5.14 dB
balance 0.00
Base Volume: 65536 / 100% / 0.00 dB
Monitor Source: alsa_output.pci-0000_05_00.6.HiFi__hw_Generic_1__sink.monitor
Latency: 16676 usec, configured 16000 us...



然后創建一個 CGI 腳本 ??screen.flv??。首先。建立放置該腳本的目錄:

mkdir screencast
mkdir screencast/cgi-bin



然后通過 ??cat?? 來直接創建該腳本:

cat <<eof>screencast/cgi-bin/screen.flv
#!/bin/bash
echo "Content-Type:video/x-flv"
echo

ffmpeg -f pulse -i <監視器信源> -f x11grab -i :0 -vcodec h264_nvenc pipe:.flv
eof



請用上面獲得的監視器信源替換文件中的 ??<監視器信源>??。

并為它設置可執行權限:

chmod +x screencast/cgi-bin/screen.flv 


注意:如果沒有 Nvidia 顯卡,或者要使用其他的硬件加速,請把編碼方案 ??h264_nvenc?? 替換為相應的編碼方案。不建議采用軟解方式,延遲非常高。

投屏

需要投屏時,首先啟動本地 Web 服務器:

cd screencast
python3 -m http.server --cgi 9999&



然后,找到你的 DLNA 設備,然后把 ??location?? 后面的 URL 復制下來:

dlna device


示例輸出:

=> Device 1:
{
"location": "http://192.168.3.118:1528/",
"host": "192.168.3.118",
"friendly_name": "Kodi",
...



找到你的 Linux 電腦的局域網 IP 地址:

ip addr


示例輸出:

3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 74:4c:a1:82:2e:3f brd ff:ff:ff:ff:ff:ff
inet 192.168.3.117/24 brd 192.168.3.255 scope global dynamic noprefixroute wlp2s0
valid_lft 58283sec preferred_lft 58283sec
inet6 240e:3b3:2ee3:9530:d005:e492:6243:9/128 scope global dynamic noprefixroute
valid_lft 6738sec preferred_lft 3138sec
inet6 240e:3b3:2ee3:9539:f289:6043:c56a:4e7b/64 scope global dynamic noprefixroute
valid_lft 7189sec preferred_lft 3589sec
inet6 240e:3b3:2ee3:9539:3714:eaf0:c549:b8c9/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 7188sec preferred_lft 3588sec
inet6 fe80::c746:2540:ab7b:20aa/64 scope link
valid_lft forever preferred_lft forever
inet6 fe80::3543:2637:e0fc:3630/64 scope link noprefixroute
valid_lft forever preferred_lft forever



啟動投屏的命令如下:

dlna play -d <URL> http://<局域網 IP>:9999/cgi-bin/screen.flv


請相應替換其中的 ??<URL>??? 和 ??<局域網 IP>?? 參數,此處我替換后的命令是:

dlna play -d http://192.168.3.118:1528/ http://192.168.3.117:9999/cgi-bin/screen.flv


然后在你的電視上設置接受投屏,各種電視設備設置投屏方式不同,請參照具體設備說明。

稍等片刻,視頻就會出現在電視上了。投屏效果如下:


作者簡介:

calvinlin:一個普通的深圳初中生。

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2014-12-23 09:37:09

Linuxrsync

2023-09-24 19:29:44

LinuxWebP圖像

2018-10-16 08:40:56

Linux鎖住鍵盤桌面應用

2011-01-11 14:04:26

2009-07-15 17:52:23

sqlite jdbc

2016-08-16 08:26:19

Linuxsignalsigaction

2017-01-05 12:21:00

LinuxPyCharm安裝

2011-03-09 15:54:34

LAMP

2017-12-11 09:04:53

LinuxScrot截屏

2019-02-28 09:13:21

Linux用法交互模式

2015-11-24 13:27:35

Linuxcool-retro-復古終端

2019-03-28 08:00:00

Linux磁盤IO監控存儲設備

2014-03-20 10:31:02

Linuxbin

2017-08-07 16:41:39

LinuxOpenCV

2017-05-08 18:10:54

2022-09-01 13:12:53

LinuxTC網絡限流

2019-01-07 09:50:06

Linuxtarball命令

2019-11-26 16:58:51

Linuxpkgsrc

2023-01-17 07:40:59

LinuxAppImage應用程序

2019-09-16 19:00:48

Linux變量
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 午夜爱爱毛片xxxx视频免费看 | 综合久久久久 | 久久天天综合 | 五月婷婷在线视频 | 99热这里都是精品 | 中文字幕日韩一区 | 中文字幕 国产精品 | 午夜精品久久久久久久久久久久 | 99在线免费观看视频 | 精品久久久久久久 | 日本成人午夜影院 | 精品久久久久久久久久久 | 久久久久国产精品 | 一区二区国产精品 | 蜜桃视频一区二区三区 | 欧美激情区 | 亚洲成人福利视频 | 免费视频一区二区 | 亚洲欧美第一视频 | 亚洲一区二区三区视频免费观看 | 午夜免费视频 | 国产激情视频网址 | 亚洲视频一区二区三区 | 午夜精品久久久久久久99黑人 | 国产一区二区三区视频 | 国产91丝袜在线18 | 久草在线 | 久草视频在线看 | 国产一级影片 | 欧洲一区视频 | 欧美精品在线免费观看 | 国产成人网 | 欧美一区二区视频 | 欧美日韩久久精品 | 在线观看深夜视频 | 亚洲第一在线 | 毛片网在线观看 | www.欧美| jav成人av免费播放 | 亚洲一区二区网站 | 成人精品一区二区三区中文字幕 |