我想将我的桌面传输到Sony Bravia Tv
局域网。
Linux 无法将桌面传输到 LAN 上的智能电视。
不过,我找到了一个解决方法,如果本地主机上有流, 我可以通过chrome 扩展程序将链接复制http://localhost:9000
到电视上播放它,但它只支持不支持或vGet Cast
http
rtmp
udp
我找到了下面的命令,它运行正常,但tcp://0.0.0.0:9000
我无法将它发送到电视。
ffmpeg -f x11grab -s 1280x720 -framerate 30 -i :0.0 -c:v mpeg2video -q:v 20 -pix_fmt yuv420p -g 1 -threads -f mpegts - | nc -l -p 8090
我试过这个
ffmpeg -f alsa -ac 2 -i hw:0,0 -f x11grab -framerate 30 -video_size 600x400 -i :0.0+0,0 -c:v libx264 -preset veryfast -maxrate 3000k -bufsize 3000k -vf "scale=1280:-1,format=yuv420p" -g 60 -c:a aac -b:a 128k -ar 44100 -f flv "http://localhost:8090/live"
但这次我收到以下错误:
Connection to tcp://localhost:8090 failed: Connection refused
http://localhost:8090/live: Connection refused
答案1
localhost
我已经找到了一种通过 VLC 工具进行流式传输的方法cvlc
。
我只是想出了它,也许有人可以改进它或发布不同的方法。
cvlc screen:// :screen-fps=10 :scre-caching=100 --sout '#transcode{vcodec=mp4v,vb=4096,acodec=mpga,ab=256,scale=1,width=1280,height=800}:http{dst=0.0.0.0:1234,access=http,mux=ts}'
编辑:很抱歉,虽然它回答了我的问题,但我在 上测试过gmediarender
,它有效,但我刚刚在电视上测试过,它无法在 上工作Sony Bravia Tv
。也许是视频格式问题或缺少seek table
所述视频格式这里
答案2
借助其自身ffserver
的 Web 服务器,您可以轻松完成此操作。ffmpeg
ffmpeg
第一的 ...
配置ffserver
主要位于/etc/ffmpeg
,如果不存在,请执行以下操作:
dpkg -L ffmpeg | grep server.conf
下面是格式的简单配置(我的)webm
:
HTTPPort 8090
HTTPBindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 40000
CustomLog -
UseDefaults
<Feed screen.ffm> # This is the input feed where FFmpeg will send
File screen.ffm # video stream.
FileMaxSize 1G # Maximum file size for buffering video
ACL allow 127.0.0.1
ACL allow localhost
</Feed>
<Stream screen> # Output stream URL definition
Feed screen.ffm # Feed from which to receive video
Format webm
# Audio settings
AudioCodec vorbis
AudioBitRate 64 # Audio bitrate
# Video settings
VideoCodec libvpx
VideoSize 1600x800 # Video resolution
# VideoSize 320x240 # Video resolution
VideoFrameRate 15 # Video FPS
AVOptionVideo cpu-used 10
AVOptionVideo qmin 10
AVOptionVideo qmax 42
AVOptionVideo quality good
AVOptionAudio flags +global_header
PreRoll 15
StartSendOnKey
VideoBitRate 400 # Video bitrate
</Stream>
<Stream status.html> # Server status URL
Format status
# Only allow local people to get the status
ACL allow 192.168.1.0 192.168.1.255
</Stream>
如果你打开原始配置文件,你会看到它有很多注释,mv
这些注释指向其他名称,并将我的注释粘贴到“ffserver.conf”的位置。然后运行命令:
ffserver
启动服务器后,它将监听来自ffmpeg
端口的流8090
,并将数据传送到我们命名为屏幕.ffm。
第二 ...
然后你可以运行任何有效的ffmepg
命令来将流发送到ffserver
。这是我的:
ffmpeg -f x11grab -r 25 -s 1600x800 -i :0.0 -c:v libvpx -f alsa -i pulse http://127.0.0.1:8090/screen.ffm
运行ffserver
和ffmpeg
命令的屏幕截图
然后您可以打开 Web 浏览器并查看结果:http://localhost:8090/screen
请注意,输入ffserver
是/screen.ffm
,输出地址是,/screen
您可以相应地更改这些名称。以下是它在我本地机器上播放的屏幕截图:
您还可以嵌入页面链接HTML5
并在页面上观看:
<video id="screen" controls> <source src="http://localhost:8090/screen" type="video/webm">
Your browser does not support HTML video.
</video>