前言:ESP32-CAM 推流直播,使用ESP32-CAM進行實時錄像,然後通過obs推流到虎牙直播。實時錄像並上傳至網絡需要硬體具有較高的網絡傳輸能力,推流直播就是,將視頻的數據流推送到虎牙直播平臺上,節省自己搭建視頻平臺的成本。
效果演示:
設備運行圖:
適用人群及硬體準備:
本文適用於對esp32/8266等有過開發經驗的同學,作為一個好玩的idea去分享。
硬體:
ESP32-CAMOBS Studio軟體(目前環境:Windows作業系統)虎牙直播軟體燒寫代碼:
使用ESP32-CAM的示例代碼(面向百度和官網編程):
更改一下WiFi配置信息和攝像頭模塊,改成自己的WiFi,模塊選擇安信可的。
燒寫調試:
打開瀏覽器輸入串口中列印出的地址即可看到一個界面,如下:
到此為止,我們就實現了一個區域網可訪問的攝像頭,接下來,我們要將視頻接口通過虎牙平臺接入外網中,讓我們隨時隨地都可以在線觀察鏡頭。
獲取視頻流:
正常我們打開的ip地址其實是web伺服器默認的80埠,但是我們要獲取流地址,在串口調試窗口可以看到流地址的信息。
Starting stream server on port:
192.168.1.7:81
但是直接訪問「192.168.1.7:81」是沒有結果的。
在`app_httpd.cpp`中拉到最底下可以找到一段:Serial.printf("Starting web server on port: '%d'\n", config.server_port); if (httpd_start(&camera_httpd, &config) == ESP_OK) { httpd_register_uri_handler(camera_httpd, &index_uri); httpd_register_uri_handler(camera_httpd, &cmd_uri); httpd_register_uri_handler(camera_httpd, &status_uri); httpd_register_uri_handler(camera_httpd, &capture_uri); }
config.server_port += 1; config.ctrl_port += 1; Serial.printf("Starting stream server on port: '%d'\n", config.server_port); if (httpd_start(&stream_httpd, &config) == ESP_OK) { httpd_register_uri_handler(stream_httpd, &stream_uri); }接下來找到`stream_uri`實現的地方:
httpd_uri_t stream_uri = { .uri = "/stream", .method = HTTP_GET, .handler = stream_handler, .user_ctx = NULL };可以看到路由為`/stream`,ok,接著將ip地址+埠+`/stream`輸入到瀏覽器就會看到一個視頻在播放了。
需要注意的事項是,這個流地址只能被一個客戶端佔用,再打開一個頁面就看不到了。(如果你剛才打開了80埠的頁面請先關閉,不然你這個地址是無法傳輸任何東西的)。
視頻流地址為:`ip:81/stream`打開obs studio軟體:
新建一個瀏覽器源:
一切都ok之後,你的obs studio上就會在播放來自esp32-cam實時直播的視頻了,就像上圖一樣。
推流地址設置(實現遠距離):
- 1.打開虎牙直播軟體(PC端)
- 2.選擇obs推流
- 3.獲取串流地址和秘鑰
- 4.將這兩個參數填寫到obs studio裡面
- 5.點擊設置->推流設置->確定
> 操作過程如下:開始推流:
點擊開始推流按鈕!
一切OK的話,右下角的顯示如下:
現在就可以進入直播間查看。
感興趣的同學快收藏起來!
如果你有問題需要諮詢或是想要聯繫我,加入QQ群或者在後臺發消息給我哦~
紙上得來終覺淺,絕知此事要coding...
對這篇內容對你有幫助,或者對本公眾號內容有興趣的同學記得加關注哦~~也可以加入官方QQ群詳細交流探討,互相學習共同進步,源碼和具體操作流程,也會放到群裡,如果有不懂得細節,群裡也會有人回答。快加入我們的大家庭QQ群號:559369389 歡迎新成員的到來!
👇下邊的網址存著一些代碼👇
https://gitee.com/dongeast/a-computer-shop/issues
👇👇👇點擊閱讀原文獲取本文源碼