树莓派上实现基于v4l2的live55视频直播方法

本文主要介绍了在树莓派上使用live555直播树莓派上usb摄像头的方法。主要是参考了https://blog.csdn.net/li_wen01/article/details/59523963的代码。

目录

1.代码的编译

1.1 x264的编译

1.2 live555的编译

1.3 整个工程的编译

问题:


因为代码实在树莓派上使用的,所以代码要编译成树莓派平台上使用的固件。可以在PC机上使用交叉编译的方法或者将代码放在树莓派上编译。

 

1.代码的编译

 

代码的编译主要分为live555的静态库编译,h264编解码库x264静态库和动态库的编译以及最终的运行固件的编译。

 

1.1 x264的编译

源代码下载:

https://gitee.com/hljlxp/x264

 

将代码clone到树莓派本地后。

执行:sudo ./configure -h

这里分别介绍了静态库和动态库的配置方法。配置完成后,直接执行sudo make即可。

编译成功后目录如下:

这时候编译得到的是静态库libx264.a,动态库libx264.so.148文件。

 

1.2 live555的编译

按照官网提供的编译方法编译后,参考:https://blog.csdn.net/u010299133/article/details/103214578。

会有4个静态库文件:

 

1.3 整个工程的编译

由于参考代码中使用的live555和x264代码的代码版本有一些出入,可能会有一些函数参数等定义的不一样,这时需要使用者。根据自己的代码版本中定义的函数方法做一些修改。包括头文件和函数方法的一些调用问题。

例如:

在rtsp目录中带有live555的流媒体直播的功能,要在树莓派上使用的话,必须将代码编译成树莓派平台使用的库文件(live555库和x264库文件)。

其中live55的库文件是静态库文件,只需要按照官方给定的方法编译就好了。会自动生成4个库文件。

x264分为静态库和动态库文件,得到x264源码后,生成

 

在编译的时候还是有一些问题:

 

这个应该是连接的时候找不到相应的静态库,查看Makefile文件,相应的静态库文件是已经添加了的。再次查看报错信息,找到相应的方法函数,然后找到声明的头文件。然后将这个头文件和自己下编译live555静态库的代码中同样的一个头文件做了对比,发现是参数的个数不对。然后就将代码中的头文件使用编译静态库的代码中的头文件替换。然后在代码中将最后一个参数置位0.也就是暂时不用这个参数。

这样后编译能够正常的通过。

 

编译通过后运行:

 

 

问题:

1.使用的时候遇到了在pi4不能够正常的使用时usb摄像头的问题。在pi3上就可以正常的使用。

2.但是在同一个网络中的机器上使用vlc能够看到视频,但是非常的卡顿,并且cpu的占用率达到了97%以上。还需要优化。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章