这不是特定的 ubuntu/linux 问题,但我希望有人可以帮助我。
我正在做一些视频流服务器其中上电脑运行缓慢(CPU 1GHz,GPU 不好(通过))。有人知道我应该使用哪个编解码器吗?
源是 720x576 YUV (PAL),太大,无法直接流式传输(占用了所有 100Mbit LAN 带宽)。我想得到流 caa 200kB/s因此它也适用于互联网。
答案1
我找到了运行良好的解决方案。
此解决方案使用 VLC 进行所有工作。视频从 USB 网络摄像头捕获,压缩并传送到网络。Stream 与 HTML 5 兼容,因此可用于流式传输。
该解决方案使用 VLC 执行整个过程:
vlc -v v4l2:///dev/video0:width=320:height=240 --v4l2-chroma=UYVY --v4l2-fps=5 --sout "#transcode{vcodec=theo,vb=256,scale=1,acodec=none,fps=25}:standard{access=http,mux=ogg,dst=:8081/stream.ogg}"
我使用 Intel Atom D525 进行了测试。CPU 使用率约为 20%,网络传输为 60kB/s
要播放视频,您只需打开支持 html5 ogg(Firefox)的浏览器,地址为:
http://localhost:8081/stream.ogg
或另一个 VLC
vlc http://localhost:8081/stream.ogg ----network-caching=100
如果你希望获得更好的图像,你可以改变
vb=1024
只需做一些测试。(每秒比特(不是字节))width=640:height=480
. 检查网络摄像头的可用分辨率
如果您的 CPU 过高,您需要检查很多东西。您的相机需要原生支持所选的分辨率和色彩空间。任何 CPU 上的转换都很慢!尝试选择其他--v4l2-chroma=UYVY
(UYVY、YUY2、RV24、RV32、MJPEG 等)。
要检查相机的功能,您可以使用程序guvcview
。它可以通过软件中心安装。