樹莓派視音頻環境簡單搭建
1 音頻相關配置
樹莓派初始安裝之後需要在用戶目錄下配置alse文件(外接音箱和mic時可能需要哦)
.asoundrc. (用戶目錄下生成該文件 touch .asoundrc)
pcm.!default {
type asym
playback.pcm {
type plug
slave.pcm "hw:0,1"
}
capture.pcm {
type plug
slave.pcm "hw:1,0"
}
}
2 ffmpeg帶硬件加速編譯(這樣樹莓派編解碼會嗖嗖嗖的快,CPU<6%,720P不是夢)
./configure --arch=armel --target-os=linux --enable-gpl --enable-libx264
--enable-nonfree --disable-opencl --disable-thumb --enable-small --enable-ffplay
--enable-encoder=libx264 --enable-decoder=h264 --enable-encoder=aac --enable-decoder=aac
--enable-encoder=ac3 --enable-decoder=ac3 --enable-parser=h264 --enable-parser=aac
--enable-omx --enable-omx-rpi --enable-encoder=h264_omx --enable-mmal --enable-hwaccel=h264_mmal
--enable-decoder=h264_mmal -j4
make -j4
make install -j4
ffmpeg 推流相關
不帶音頻
ffmpeg -f v4l2 -r 15 -video_size vga -pix_fmt yuv420p -i /dev/video0 -b:v 500k -c:v h264_omx -an -f flv rtmp://127.0.0.1/mytv
帶音頻
ffmpeg -f alsa -i plughw:1 -t 30 -ac 2 out.wav
視頻轉碼相關
ffmpeg -c:v h264_mmal -c:a aac -i demo.mp4 -c:v h264_omx -c:a aac -r 30 little.mp4
# 出現這個提示證明無法往服務端中寫入流,流通道不正常
av_interleaved_write_frame(): Broken pipe
HLS相關TS視頻切片
ffmpeg -f v4l2 -r 10 -s 640x480 -i /dev/video0 -f alsa -i plughw:1,0 -b:v 300k \
-c:v h264_omx -c:a aac -f segment -segment_time 2 -segment_wrap \
3 -segment_list_size 3 -segment_list “/jfdream/nginx/html/live/live.m3u8” \
“/jfdream/nginx/html/live/stream%03d.ts”
3 ngrok 無線穿牆相關研究(使用樹莓派做雲服務器)
ngrok
相關下載地址(ngrok的使用需要go語言的支持,所以需要安裝go語言環境)
git clone https://github.com/inconshreveable/ngrok.git
服務端
注意證書的相關配置
setsid ./bin/ngrokd -tlsKey=”crt/www.jfdream.com.key” -tlsCrt=”crt/www.jfdream.com.pem” -domain=”jfdream.com” -httpAddr=”:8081” -httpsAddr=”:8082” -tunnelAddr=”:8083”
客戶端
bin/ngrok -config ngrok.cfg start http https