• [Linux]搭建USB摄像头转RTSP服务一例


    基于某种原因,需要将以前的摄像头利旧做成网络摄像头,因此开始查资料着手搭建

    环境Debian 8.6(arm)

    一句话概括,用ffmpge将摄像头/dev/video0流数据压入ffserver,ffserver对外提供流服务

    直接上操作

    1.首先更新apt源,把靠谱的ffmpeg源加进去

    修改/etc/apt/sources.list,添加

    deb http://archive.deb-multimedia.org jessie main non-free

    2.更新并安装

    apt-get install deb-multimedia-keyring
    apt-get update
    apt-get install ffmpeg libx264-dev

    无事安装完成

    3.配置文件
    (从参考网页拷贝了一例,实际参考http://trac.ffmpeg.org/wiki/ffserver#Creatingtheconfigurationfile)

    vim /etc/ffserver.conf

    4.启动服务
    服务开始提供网络输出,接受设备输入。直接运行

    ffserver

    5.将设备信号压入服务

    ffmpeg -f v4l2 -i /dev/video0 -s 352x240 -r 24 -vcodec libx264 -an http://127.0.0.1:8090/feed1.ffm

    我报了2个错,顺便记录下解决过程
    a.报error: Missing Audio stream which is needed for this ffm.
    解决:在对应<Stream>标签里打开NoAudio标签即可,因为我摄像头不需要声音,需要声音的还没研究
    (https://askubuntu.com/questions/644102/ffserver-ffmpeg-missing-audio-stream-which-is-needed)


    b.提示我参数有问题(原文找到贴上来),意思是我的比特率,视频宽高设置不匹配,需要调整。
    解决:检查屏幕输出,找到

    Input #0, video4linux2,v4l2, from '/dev/video0':
    Duration: N/A, start: 17745.741744, bitrate: N/A
    Stream #0:0: Video: mjpeg, yuvj422p(pc, bt470bg/unknown/unknown), 640x480, 31 tbr, 1000k tbn, 1000k tbc

    以及

    Output #0, ffm, to 'http://127.0.0.1:8090/feed1.ffm':
    Metadata:
    creation_time : now
    Stream #0:0: Video: mpeg1video, none, 352x240, q=2-31, 256 kb/s, 30 fps, 15 tbc
    Metadata:
    encoder : Lavc56.26.100 mpeg1video
    Stream #0:1: Video: msmpeg4v3 (msmpeg4), none, 352x240, q=2-31, 256 kb/s, 31 fps, 15 tbc
    Metadata:
    encoder : Lavc56.26.100 msmpeg4
    Stream mapping:
    Stream #0:0 -> #0:0 (mjpeg (native) -> mpeg1video (native))
    Stream #0:0 -> #0:1 (mjpeg (native) -> msmpeg4v3 (msmpeg4))

    这两块,检查差异,同时调整/etc/ffserver.conf里的配置项,调整Stream编码和输入编码一致,我这里是mjpeg对应配置文件里的mpjpeg,改了就好了。

    6.访问
    用播放工具打开http://192.168.0.x:8090/test1.mpg这个地址就可以了。

    跑起来了其他的各位就慢慢研究吧。


    参考0:https://www.cnblogs.com/chay/p/10553787.html
    参考1:https://blog.csdn.net/gaisylly/article/details/50625214
    参考2:http://www.deb-multimedia.org/
    参考3:https://blog.csdn.net/zong596568821xp/article/details/88540455
    参考4:https://github.com/revmischa/rtsp-server(没用过改天用用)
    参考5:https://askubuntu.com/questions/644102/ffserver-ffmpeg-missing-audio-stream-which-is-needed

    -----
  • 相关阅读:
    《C++反汇编与逆向分析技术揭秘》--构造函数 读书笔记
    《C++反汇编与逆向分析技术揭秘》--虚函数 读书笔记
    VPP-main() 源码学习
    【转】几种TCP连接中出现RST的情况
    动态追踪学习
    RCU学习总结
    内核栈回溯原理学习应用
    《C++反汇编与逆向分析技术揭秘》--单类继承 读书笔记
    C# 防火墙操作之创建规则
    C# 防火墙操作之特定程序
  • 原文地址:https://www.cnblogs.com/boneking/p/15693585.html
Copyright © 2020-2023  润新知