树莓派视音频环境简单搭建
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