樹莓派上實現基於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%以上。還需要優化。

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