美文网首页
Orange pi one 安装Raspbian搭建视频直播方案

Orange pi one 安装Raspbian搭建视频直播方案

作者: 奋斗_登 | 来源:发表于2017-11-30 16:58 被阅读356次

    本文旨在香橙派板子上实现视频直播、抓拍、定时拍、比对图片
    用到的技术栈:ngroke(反向代理)、ffmpeg(视频推流、解码)、flask(python web框架)、HLS等等

    1、下载Raspbian安装包地址

    http://www.orangepi.cn/downloadresourcescn/orangepipc/oragepipc_a01a2822c14b644d4931fb919e.html

    2、准备TF卡及安装镜像

    参照:http://www.orangepi.cn/quickstartcn/startcn_2e17631567a387efd2a3d252fa79.html

    3、启动系统

    通过hdmi转vga线来连接显示器,usb口接usb hub来分别接入键盘和鼠标。
    默认用户名密码为:root 密码:orangepi,
    修改Raspbian默认启动为命令行模式
    修改文件/etc/inittab
    这里将id:2:initdefault:修改为id:3:initdefault:

    vi /etc/X11/default-display-manager
    #输入false 然后Esc,保存,然后reboot
    :wq
    reboot
    

    再次启动后系统即是命令行模式
    修改ip地址为192.168.1.88
    备份原来的网卡配置文件

    cp /etc/network/interfaces  /etc/network/interfacesbak  
    vi /etc/network/interfaces    
    

    填入下边内容

    auto lo
    #开机自动连接网络
    auto eth0
    
    iface lo inet loopback
    allow-hotplug eth0
    #static表示使用固定ip,dhcp表述使用动态ip
    iface eth0 inet static
    #设置ip地址
    address 192.168.1.88
    netmask 255.255.255.0
    gateway 192.168.1.1       
    

    保存,然后重启网络

    service networking restart 
    

    至此及可以新的ip已经生效,但这个时候老的ip还依然能用,重启系统后旧ip就不能用了

    4、扩展SD卡剩余空间
    df -lh
    
    查看磁盘空间发现不对,还有一部分剩余的容量没有使用

    解决:
    1、查看第二分区的起始地址,后面会用到

    cat /sys/block/mmcblk0/mmcblk0p2/start
    

    2、

    sudo fdisk /dev/mmcblk0   #使用fdisk操作磁盘
    Command (m for help): d   #d,删除分区
    Partition number (1-4): 2   # 2,删除第二分区
    
    Command (m for help): n  #创建一个新分区
    Partition type:
       p   primary (1 primary, 0 extended, 3 free)
       e   extended
    Select (default p): p
    Partition number (1-4, default 2): 2
    First sector (2048-62333951, default 2048): 124928
    Last sector, +sectors or +size{K,M,G} (124928-62333951, default 62333951): 
    Using default value 62333951
    
    Command (m for help): w
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    
    WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
    The kernel still uses the old table. The new table will be used at
    the next reboot or after you run partprobe(8) or kpartx(8)
    Syncing disks.
    reboot
    

    重启完成之后,此时查询也还是没有变化的,还需要如下命令

    sudo resize2fs /dev/mmcblk0p2
    df -lh
    
    再次查看磁盘已经识别出来了剩余空间
    5、安装nodejs

    下载最新版本的nodejs(v4.8.6)

    wget https://nodejs.org/dist/v4.8.6/node-v4.8.6-linux-armv7l.tar.xz
    cd node-v4.8.6-linux-armv7l/bin
    ln -s /root/software/node-v4.8.6-linux-armv7l/bin/node  /usr/local/bin/node
    ln -s /root/software/node-v4.8.6-linux-armv7l/bin/npm  /usr/local/bin/npm
    npm -g install http-server
    ln -s /root/software/node-v4.8.6-linux-armv7l/bin/http-server  /usr/local/bin/http-server
    npm install -g pm2 #安装pm2启动nodejs守护进程
    ln -s /root/software/node-v4.8.6-linux-armv7l/bin/pm2  /usr/local/bin/pm2
    
    6、安装ffmpeg

    修改国内镜像

    sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
    sudo cp /etc/apt/sources.list.d/raspi.list /etc/apt/sources.list.d/raspi.list.bak
    

    编辑内容如下

    注意如果/etc/apt/sources.list.d/raspi.list国内镜像不能用404 就不要改动这个文件了
    vi /etc/apt/sources.list  #修改Raspbian的软件源,内容如下
    #deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi
    deb http://mirrors.aliyun.com/raspbian/raspbian/ wheezy main non-free contrib
    deb-src http://mirrors.aliyun.com/raspbian/raspbian/ wheezy main non-free contrib    
    vi  /etc/apt/sources.list.d/raspi.list  #树莓派的软件源 ,内容如下(阿里没有对应的镜像源,所以采用中科大的源)  
    #deb http://archive.raspberrypi.org/debian/ wheezy main
    deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/ wheezy main                                                          
    

    安装ffmpeg

    方法一(推荐,可安装最新版ffmpeg)
    # 先删除已经存在的依赖,然后更新系统重新安装依赖包
    sudo apt-get remove --purge libmp3lame-dev libtool libssl-dev libaacplus-* libx264 libvpx librtmp ffmpeg
    sudo apt-get update; sudo apt-get upgrade; sudo apt-get install libmp3lame-dev; sudo apt-get install -y libopus-dev; sudo apt-get install autoconf; sudo apt-get install libtool; sudo apt-get install checkinstall; sudo apt-get install libssl-dev
    # 安装h264编码器
    mkdir ~/src
    cd ~/src
    git clone git://git.videolan.org/x264
    cd x264
    ./configure --host=arm-unknown-linux-gnueabi --enable-static --disable-opencl
    make && make install
    # install ffmpeg
    cd /usr/src
    git clone git://source.ffmpeg.org/ffmpeg.git
    cd ffmpeg
    sudo ./configure --arch=armel --target-os=linux --enable-gpl --enable-libx264 --enable-nonfree
    make # make 时间很长大约2个多小时
    sudo make install
    

    查看版本

    ffmpeg -version
    
    方法二
    sudo apt-get update
    sudo apt-get install deb-multimedia-keyring
    sudo apt-get update
    sudo apt-get install ffmpeg
    
    7、安装jsmpeg
    git clone https://github.com/phoboslab/jsmpeg.git
    cd jsmpeg
    npm install ws #安装依赖websocket
    #node websocket-relay.js supersecret 8081 8082 ##node 启动jspeg
    pm2 start websocket-relay.js   #守护进程启动
    
    8、启动ffmpeg推流
    ffmpeg -rtsp_transport tcp -i rtsp://admin:12345@192.168.1.120:554/h264/ch1/sub/av_stream -f mpegts -vcodec mpeg1video -s 320x240 -b:v 800k -bf 0 -acodec mp2 -b:a 128k -muxdelay 0.001 -r 30 http://localhost:8081/supersecret
    
    9、安装ngrok客户端
    touch ngrok.cfg #创建配置文件
    vi ngrok.cfg #编辑内容
    

    内容如下
    http: tcp:分别为通道的名字可以自定义

    server_addr: qdoing.com:4443
    trust_host_root_certs: false
    tunnels:
     http:
      proto:
       http: 8080
       subdomain: c1
     tcp:
       remote_port: 1001
       proto:
        tcp: 8082
    ssh:
      remote_port: 2001
      proto:
        tcp: 22
    
    chmod 777 ngrok #给ngrok执行权限
     ./ngrok -config=ngrok.cfg start http tcp #开启tcp http 代理
    

    相关文章

      网友评论

          本文标题:Orange pi one 安装Raspbian搭建视频直播方案

          本文链接:https://www.haomeiwen.com/subject/xckubxtx.html