技术方案1:srs + nginx + ffmpeg。全部安装到海思hi3518EV200板上。
经过一系列的编译过程,开始上板调试。
把lib拷贝进去,flash不够,只好用TF卡来存放。但居然有下面的问题:
/mnt/mtd/ipc/tmpfs/sd/freeman/hisiv300/lib # ln -s libz.so.1.2.8 libz.so.1
ln: libz.so.1: Operation not permitted
/mnt/mtd/ipc/tmpfs/sd/freeman/hisiv300/lib #
有root权限也不好使!SD卡mount来的目录,就是没有执行程序的权限。
这就意味着,用只有32M DDR的Hi3518E平台是不行的!至少得换成hi3516C平台,内存至少得128MB才行。flash至少要16MB才够。
方案2:
用ffmpeg在板上切片(*.ts),然后ftpput到server上面,由server生成.m3u8索引文件,这样就可以出HLS流了。
ffmpeg编译出来size是2.2MB,还好,裁剪了许多。
按5s一个ts片,一个ts片的size是334KB。存于TF卡一个record目录下面。TS文件名不重复,例如:hls%08d.ts,可以存15年。
出来一个ts片就上传一个,如果网络故障,就保存于TF卡上,不会丢失。上传完成后就删除ts切片。
考虑掉电重启,需要记录下当前.ts的index。就象
[ts]
index_head=355 //读出指针
index_tail=1020 //写入指针
上传用ftpput方式,需要配置ftp地址
先用配置文件方式来配置
[ftp]
url=ftp://admin:12345678@192.168.3.1:10021/ipc003
[TFcard]
remove_tsnum_when_full=720
上电后就自动启动此切片进程,如果TF卡录满了,就先删除前面一个小时的切片(3600/5=720个)
以便循环录像。
经过一系列的编译过程,开始上板调试。
把lib拷贝进去,flash不够,只好用TF卡来存放。但居然有下面的问题:
/mnt/mtd/ipc/tmpfs/sd/freeman/hisiv300/lib # ln -s libz.so.1.2.8 libz.so.1
ln: libz.so.1: Operation not permitted
/mnt/mtd/ipc/tmpfs/sd/freeman/hisiv300/lib #
有root权限也不好使!SD卡mount来的目录,就是没有执行程序的权限。
这就意味着,用只有32M DDR的Hi3518E平台是不行的!至少得换成hi3516C平台,内存至少得128MB才行。flash至少要16MB才够。
方案2:
用ffmpeg在板上切片(*.ts),然后ftpput到server上面,由server生成.m3u8索引文件,这样就可以出HLS流了。
ffmpeg编译出来size是2.2MB,还好,裁剪了许多。
按5s一个ts片,一个ts片的size是334KB。存于TF卡一个record目录下面。TS文件名不重复,例如:hls%08d.ts,可以存15年。
出来一个ts片就上传一个,如果网络故障,就保存于TF卡上,不会丢失。上传完成后就删除ts切片。
考虑掉电重启,需要记录下当前.ts的index。就象
[ts]
index_head=355 //读出指针
index_tail=1020 //写入指针
上传用ftpput方式,需要配置ftp地址
先用配置文件方式来配置
[ftp]
url=ftp://admin:12345678@192.168.3.1:10021/ipc003
[TFcard]
remove_tsnum_when_full=720
上电后就自动启动此切片进程,如果TF卡录满了,就先删除前面一个小时的切片(3600/5=720个)
以便循环录像。