您的位置:首页 > 编程语言 > ASP

RaspberryPi+Raspivid+FFMPEG软件编码数据

2016-01-15 13:25 459 查看

RaspberryPi+Raspivid+FFMEPG

RaspberryPi的摄像头模块是500万像素,加载驱动后可以用ffmpeg编码设备
/dev/video0
输出流,也可以用Raspivid直接调用摄像头编码模块输出h264流。

FFMEPG

摄像头的驱动是在树莓派的内核中的,不用下载和重新编译,直接加载:

sudo modprobe bcm2835_v4l2


可以看到设备就存在了:

winlin@raspberrypi:~$ ll /dev/video0
crw-rw----+ 1 root video 81, 0 Jan 15 03:52 /dev/video0


FFMPEG可以使用SRS来编译:

git clone https://github.com/ossrs/srs.git &&
cd srs && ./configure --pi --with-ffmpeg


流媒体服务器可以用Oryx,具体参考Usage

采集摄像头并输出RTMP:

sudo ~/srs/objs/ffmpeg/bin/ffmpeg -f v4l2 -i /dev/video0 \
-c libx264 -profile:v main -preset:v fast \
-b:v 300k -s 640x480 -r 25 \
-an \
-f flv -y rtmp://127.0.0.1/live/livestream


还可以使用raspivid编码后用ffmpeg转封装输出:

sudo raspivid -fl -t 0 -w 640 -h 480 -b 1200000 -fps 15 \
-pf baseline -o - | ~/srs/objs/ffmpeg/bin/ffmpeg -f h264 -i - \
-c copy -an -f flv -y rtmp://127.0.0.1/live/livestream


可以修改profile为high, main, baseline

可是修改preset为veryfast, fast, medium, slow, slower

FFMEPG+1200kbps+veryfast

本节为采用preset=veryfast,输出1200kbps码率的数据。

ProfilePresetBitrateSizeFPSCPUMemory
baselineveryfast1200kbps640x48015fps120%81MB
mainveryfast1200kbps640x48015fps155%92MB
highveryfast1200kbps640x48015fps156%92MB
以上为480p的数据。

ProfilePresetBitrateSizeFPSCPUMemory
baselineveryfast1200kbps768x57615fps160%93MB
mainveryfast1200kbps768x57615fps200%109MB
highveryfast1200kbps768x57615fps220%109MB
以上为576p的数据。

ProfilePresetBitrateSizeFPSCPUMemory
baselineveryfast1200kbps960x72015fps241%115MB
mainveryfast1200kbps960x72015fps308%139MB
highveryfast1200kbps960x72015fps313%140MB
以上为720p的数据。

ProfilePresetBitrateSizeFPSCPUMemory
baselineveryfast1200kbps1440x108015fps360%190MB
以上为1080p的数据。

FFMEPG+1200kbps+fast

本节为采用preset=fast,输出1200kbps码率的数据。

ProfilePresetBitrateSizeFPSCPUMemory
baselinefast1200kbps640x48015fps352%103MB
mainfast1200kbps640x48015fps303%115MB
highfast1200kbps640x48015fps326%115MB
以上为480p的数据。

ProfilePresetBitrateSizeFPSCPUMemory
baselinefast1200kbps768x57615fps366%123MB
以上为576p的数据。

FFMEPG+500kbps+veryfast

本节为采用preset=veryfast,输出500kbps码率的数据。

ProfilePresetBitrateSizeFPSCPUMemory
baselineveryfast500kbps640x48015fps116%80MB
mainveryfast500kbps640x48015fps136%91MB
highveryfast500kbps640x48015fps140%92MB
以上为480p的数据。

ProfilePresetBitrateSizeFPSCPUMemory
baselineveryfast500kbps768x57615fps152%92MB
mainveryfast500kbps768x57615fps194%108MB
highveryfast500kbps768x57615fps189%108MB
以上为576p的数据。

ProfilePresetBitrateSizeFPSCPUMemory
baselineveryfast500kbps960x72015fps220%114MB
mainveryfast500kbps960x72015fps264%139MB
highveryfast500kbps960x72015fps277%138MB
以上为720p的数据。

ProfilePresetBitrateSizeFPSCPUMemory
baselineveryfast500kbps1440x108015fps305%188MB
mainveryfast500kbps1440x108015fps381%239MB
以上为1080p的数据。

FFMEPG+500kbps+fast

本节为采用preset=fast,输出500kbps码率的数据。

ProfilePresetBitrateSizeFPSCPUMemory
baselinefast500kbps640x48015fps296%102MB
mainfast500kbps640x48015fps260%114MB
highfast500kbps640x48015fps290%115MB
以上为480p的数据。

ProfilePresetBitrateSizeFPSCPUMemory
baselinefast500kbps768x57615fps366%122MB
mainfast500kbps768x57615fps369%138MB
以上为576p的数据。

FFMEPG+500kbps+medium

本节为采用preset=medium,输出500kbps码率的数据。

ProfilePresetBitrateSizeFPSCPUMemory
baselinemedium500kbps640x48015fps334%114MB
mainmedium500kbps640x48015fps306%128MB
以上为480p的数据。

ProfilePresetBitrateSizeFPSCPUMemory
baselinemedium500kbps768x57615fps364%139MB
以上为576p的数据。

RASPIVID

本节采用
raspivid
编码,输出码率不同分辨率的数据。

ProfilePresetBitrateABitrateSizeFPSCPUMemory
high-1200kbps488kbps640x48015fps1%4MB
high-1200kbps1280kbps768x57615fps1%4MB
high-1200kbps1440kbps960x72015fps1%4MB
high-1200kbps2000kbps1440x108015fps1%4MB
因为raspvid指定的是profile、分辨率和码率,实际上的码率还是根据分辨率和profile决定的,所以指定的码率只是参考。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: