免费com域名注册网站,wordpress缩进去的边栏,上海长宁网站建设公司,网站建设培训报名以下内容源于朱有鹏课程的学习与整理#xff0c;如有侵权请告知删除。
前言
本文首先移植MP4V2库#xff0c;然后运行修改后的sample代码以生成MP4文件。
利用MP4v2库#xff0c;可以将编码方式为H264的视频码流打包、封装为MP4格式的文件。 一、移植MP4v2库
1、下载MP4…以下内容源于朱有鹏课程的学习与整理如有侵权请告知删除。
前言
本文首先移植MP4V2库然后运行修改后的sample代码以生成MP4文件。
利用MP4v2库可以将编码方式为H264的视频码流打包、封装为MP4格式的文件。 一、移植MP4v2库
1、下载MP4v2库并解压
1下载地址2.0.0~dfsg0-6 : mp4v2 package : Ubuntu。 2将源码包解压至/home/xjh/iot/hisi_development/mp4/mp4v2-2.0.0目录。
rootubuntu:/home/xjh/iot/hisi_development/mp4/mp4v2-2.0.0# ls
aclocal.m4 configure COPYING GNUmakefile.am include libplatform project src
autoaux configure.ac doc GNUmakefile.in INSTALL libutil README util
rootubuntu:/home/xjh/iot/hisi_development/mp4/mp4v2-2.0.0#
2、配置与编译
1在/home/xjh/iot/hisi_development/mp4/mp4v2-2.0.0目录下创建_install文件夹作为安装目录然后执行以下命令即执行该目录下的configure脚本并传一些参数进去。
sudo PATH$PATH:/opt/hisi-linux/x86-arm/arm-hisiv300-linux/target/bin CCarm-hisiv300-linux-gcc CXXarm-hisiv300-linux-gcc ./configure --hostarm-hisiv300-linux --prefix/home/xjh/iot/hisi_development/mp4/mp4v2-2.0.0/_install --disable-option-checking --disable-debug --disable-optimize --disable-fvisibility --disable-gch --disable-largefile --disable-util --disable-dependency-tracking --disable-libtool-lock
2执行make然后执行make install。
执行make时如果出错如下则执行“source /etc/profile”。
./libtool: line 984: arm-hisiv300-linux-gcc: command not found
make: *** [src/3gp.lo] Error 1
3如果安装成功在_install目录下会生成一些待部署的文件。其中bin目录下是一些可执行的二进制文件lib目录下是库文件其中.a文件与静态链接库有关编译与链接时使用.so文件与动态链接库有关链接与运行时使用include目录下的文件在编译时会用到。
rootubuntu:/home/xjh/iot/hisi_development/mp4/mp4v2-2.0.0/_install# ls
bin include lib share
rootubuntu:/home/xjh/iot/hisi_development/mp4/mp4v2-2.0.0/_install#
3、部署相关文件
1将上面生成的lib目录下的所有文件拷贝到Hi3518E_SDK_V1.0.3.0/mpp/lib目录中。
rootubuntu:/home/xjh/iot/hisi_development/mp4/mp4v2-2.0.0/_install/lib# ls
libmp4v2.a libmp4v2.la libmp4v2.so libmp4v2.so.2 libmp4v2.so.2.0.0
rootubuntu:/home/xjh/iot/hisi_development/mp4/mp4v2-2.0.0/_install/lib# cp * /home/xjh/iot/hisi_development/Hi3518E_SDK/Hi3518E_SDK_V1.0.3.0/mpp/lib/
rootubuntu:/home/xjh/iot/hisi_development/mp4/mp4v2-2.0.0/_install/lib#
2将上面生成的include目录下的所有文件拷到Hi3518E_SDK_V1.0.3.0/mpp/include目录中。
rootubuntu:/home/xjh/iot/hisi_development/mp4/mp4v2-2.0.0/_install/include# ls
mp4v2
rootubuntu:/home/xjh/iot/hisi_development/mp4/mp4v2-2.0.0/_install/include# cp * /home/xjh/iot/hisi_development/Hi3518E_SDK/Hi3518E_SDK_V1.0.3.0/mpp/include/ -rf
rootubuntu:/home/xjh/iot/hisi_development/mp4/mp4v2-2.0.0/_install/include#
3将上面生成的lib目录下的*so*文件拷贝到板载系统的/lib目录中。
此时因为spiflsh容量不足而报错为了腾出spiflash空间分别做了两方面的工作。
第一使用strip工具缩小动态链接库的文件大小。
动态链接库即.so文件中包含着调试符号信息这些符号会占用一定的空间。在传统的嵌入式系统中flash空间是有限的为了节省flash空间需要把这些符号信息去掉。之所以可以将这些符号信息去掉是因为这些信息是用来调试的在程序运行时是没用的。
rootubuntu:/home/xjh/iot/hisi_development/mp4/mp4v2-2.0.0/_install/lib# ls
libmp4v2.a libmp4v2.la libmp4v2.so libmp4v2.so.2 libmp4v2.so.2.0.0
rootubuntu:/home/xjh/iot/hisi_development/mp4/mp4v2-2.0.0/_install/lib# arm-linux-strip *so*
rootubuntu:/home/xjh/iot/hisi_development/mp4/mp4v2-2.0.0/_install/lib#
第二挂载TF卡然后将/ko目录内容移动到TF卡中。
1将TF卡格式化为FAT32文件系统在windows中进行快速格式化时选择这个选项。
2把TF卡插进开发板确保TF卡可用blk是块设备的简写mmcblk就是mmc或者sd卡0就是这个mmc或者sd卡的顺序编号p1就是分区。
/mnt # himci: card disconnected! #拔掉卡时显示的信息
mmc1: card aaaa removed
himci: card connected! #将卡插入卡槽显示的信息
himci: mmc1: valid phase shift [1, 7] Final Phase 4
mmc1: new ultra high speed SDR104 SDHC card at address aaaa
mmcblk0: mmc1:aaaa SC16G 14.8 GiB mmcblk0: p1/mnt # ls /dev/mmc* #确保被识别、可用
/dev/mmcblk0 /dev/mmcblk0p1
/mnt #
3首先在板载系统上创建/usr/mmc目录然后执行“mount -t vfat /dev/mmcblk0p1 /usr/mmc”挂载成功后将/ko目录剪切到/usr/mmc目录中。
4在开发板的/etc/profle文件末尾添加内容如下
mount -t vfat /dev/mmcblk0p1 /usr/mmccd /usr/mmc/ko
./load3518e -i -sensor ar0130 -osmem 32 -total 64mount -t nfs -o nolock 192.168.1.141:/home/xjh/iot/hisi_development/hisi_rootfs /mntcd /mnt 二、将H.264码流打包成MP4格式文件
1完成上面操作后将提供的sample目录复制到虚拟机Hi3518E_SDK_V1.0.3.0/mpp目录下修改目录名为“sample_mp4_ar0130”只是为了区别之前实验的sample目录。
2进入sample_mp4_ar0130/venc目录下修改Makefile文件如下即修改lib的路径要根据自己实际的lib路径修改
$(TARGET):%:%.o $(COMM_OBJ)$(CC) $(CFLAGS) -lpthread -lm -o $ $^ $(MPI_LIBS) $(AUDIO_LIBA) $(SENSOR_LIBS) -lmp4v2 -lstdc -lm -L /home/xjh/iot/hisi_development/Hi3518E_SDK/Hi3518E_SDK_V1.0.3.0/mpp/lib3在venc目录下执行make将samp_venc文件拷至/home/xjh/iot/hisi_development/hisi_rootfs目录下方便将来在开发板的/mnt目录下执行。
4在板载系统/mnt目录下执行“ ./sample_venc ”。注意让它一直执行直到显示“close mp4 file”时才可以按“ctrlc”终止程序否则最终的视频文件打不开。
/mnt # ./sample_venc
MPP Ver HI_VERSIONHi3518EV200_MPP_V1.0.3.0 B040 Release
RTSP:-----Init Rtsp server
s32ChnNum 1
SAMPLE_COMM_VI_SetMipiAttr enWDRMode: 0
linear mode
Aptina AR0130 sensor 720P30fps init success!
please press twice ENTER to exit this sample
s32ChnTotal 1
Write sps
Write pps -------------------
Write date type 6 isSyncSample 0
Write date type 5 isSyncSample 1
Write date type 1 isSyncSample 0
Write date type 1 isSyncSample 0
Write date type 1 isSyncSample 0
Write date type 1 isSyncSample 0
Write date type 1 isSyncSample 0//省略部分close mp4 file
5在板载系统的/usr/mmc/目录下源码规定的目录可以看到test.mp4文件。将该文件复制到板载系统的/mnt目录则可以在虚拟机中/home/xjh/iot/hisi_development/hisi_rootfs目录下看到该文件把它移动到共享文件夹在windows主机中打开该文件。