此篇尚在編輯中
這篇所牽涉的領域, 包含了樹莓派的系統設定, webcam的擷取, ffmpeg的編解碼, ubuntu的nginx 直播系統伺服器, Python的解析
這是一個龐大的專案, 還在編輯中, 目前也還不知要放在那個項目中, 請稍後.
歷程
因opencv的無解, 轉而發現ffmpeg的優良~~高興
1. 編碼成視訊時為何只能達成最多10fps?
ssd不夠快? cpu不夠快
2. 測試後, ram disk亦無法解決
3. 改成 1024*576解析, 儲存及網頁可以達順暢效果. 但畫面就是模糊
4. 實際測試 c922pro可以傳輸約30fps的畫面, 所以input 端沒問題
5. 思路~~編碼耗時過久–正解
6. 改用ffmpeg–初步得到正確答案, 後續待survey
1. c922pro 在1920*1080解析下, 可以輸出30fps
2. 樹莓派usb3.0 只能抓取約22fps–待測
3. Opencv的capture.write只能達到10fps為極限
4. ffmpeg硬体編碼預設的品質很差, 但改變bitrate為4000k後, 品質相當優, 且可達30fps, 只是webcam沒那麼高輸入, 所以約22fps即可
5. 如何使用socket傳送到server
6. 5不是問題, 因為要survey如何傳送到smtp
7. Opencv已知無法解決編碼fps過低問題, 所以一定要使用ffmpeg
提高硬体編碼品質
boxcolor=0x000000@0.5 : 0.5為透明度
ffmpeg -f v4l2 -video_size 1920x1080 -i /dev/video0 \
-vf drawtext='fontfile=fonts/FreeSerif.ttf:text=%{localtime}:x=5:y=20:fontcolor=white:fontsize=36:box=1:boxcolor=0x000000@0.5' \
-an -y \
-b:v 6000k \
-r 30 \
-c:v h264_omx \
-t 15 \
output.mp4
底下是推播到rtmp
