本文主要介紹了在樹莓派上使用live555直播樹莓派上usb攝像頭的方法。主要是參考了https://blog.csdn.net/li_wen01/article/details/59523963的代碼。
目錄
因爲代碼實在樹莓派上使用的,所以代碼要編譯成樹莓派平臺上使用的固件。可以在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%以上。還需要優化。