RaspberryPi+Raspivid+FFMPEG软件编码数据

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码率的数据。

Profile Preset Bitrate Size FPS CPU Memory
baseline veryfast 1200kbps 640x480 15fps 120% 81MB
main veryfast 1200kbps 640x480 15fps 155% 92MB
high veryfast 1200kbps 640x480 15fps 156% 92MB

以上为480p的数据。

Profile Preset Bitrate Size FPS CPU Memory
baseline veryfast 1200kbps 768x576 15fps 160% 93MB
main veryfast 1200kbps 768x576 15fps 200% 109MB
high veryfast 1200kbps 768x576 15fps 220% 109MB

以上为576p的数据。

Profile Preset Bitrate Size FPS CPU Memory
baseline veryfast 1200kbps 960x720 15fps 241% 115MB
main veryfast 1200kbps 960x720 15fps 308% 139MB
high veryfast 1200kbps 960x720 15fps 313% 140MB

以上为720p的数据。

Profile Preset Bitrate Size FPS CPU Memory
baseline veryfast 1200kbps 1440x1080 15fps 360% 190MB

以上为1080p的数据。

FFMEPG+1200kbps+fast

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

Profile Preset Bitrate Size FPS CPU Memory
baseline fast 1200kbps 640x480 15fps 352% 103MB
main fast 1200kbps 640x480 15fps 303% 115MB
high fast 1200kbps 640x480 15fps 326% 115MB

以上为480p的数据。

Profile Preset Bitrate Size FPS CPU Memory
baseline fast 1200kbps 768x576 15fps 366% 123MB

以上为576p的数据。

FFMEPG+500kbps+veryfast

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

Profile Preset Bitrate Size FPS CPU Memory
baseline veryfast 500kbps 640x480 15fps 116% 80MB
main veryfast 500kbps 640x480 15fps 136% 91MB
high veryfast 500kbps 640x480 15fps 140% 92MB

以上为480p的数据。

Profile Preset Bitrate Size FPS CPU Memory
baseline veryfast 500kbps 768x576 15fps 152% 92MB
main veryfast 500kbps 768x576 15fps 194% 108MB
high veryfast 500kbps 768x576 15fps 189% 108MB

以上为576p的数据。

Profile Preset Bitrate Size FPS CPU Memory
baseline veryfast 500kbps 960x720 15fps 220% 114MB
main veryfast 500kbps 960x720 15fps 264% 139MB
high veryfast 500kbps 960x720 15fps 277% 138MB

以上为720p的数据。

Profile Preset Bitrate Size FPS CPU Memory
baseline veryfast 500kbps 1440x1080 15fps 305% 188MB
main veryfast 500kbps 1440x1080 15fps 381% 239MB

以上为1080p的数据。

FFMEPG+500kbps+fast

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

Profile Preset Bitrate Size FPS CPU Memory
baseline fast 500kbps 640x480 15fps 296% 102MB
main fast 500kbps 640x480 15fps 260% 114MB
high fast 500kbps 640x480 15fps 290% 115MB

以上为480p的数据。

Profile Preset Bitrate Size FPS CPU Memory
baseline fast 500kbps 768x576 15fps 366% 122MB
main fast 500kbps 768x576 15fps 369% 138MB

以上为576p的数据。

FFMEPG+500kbps+medium

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

Profile Preset Bitrate Size FPS CPU Memory
baseline medium 500kbps 640x480 15fps 334% 114MB
main medium 500kbps 640x480 15fps 306% 128MB

以上为480p的数据。

Profile Preset Bitrate Size FPS CPU Memory
baseline medium 500kbps 768x576 15fps 364% 139MB

以上为576p的数据。

RASPIVID

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

Profile Preset Bitrate ABitrate Size FPS CPU Memory
high - 1200kbps 488kbps 640x480 15fps 1% 4MB
high - 1200kbps 1280kbps 768x576 15fps 1% 4MB
high - 1200kbps 1440kbps 960x720 15fps 1% 4MB
high - 1200kbps 2000kbps 1440x1080 15fps 1% 4MB

因为raspvid指定的是profile、分辨率和码率,实际上的码率还是根据分辨率和profile决定的,所以指定的码率只是参考。

你可能感兴趣的:(RaspberryPi+Raspivid+FFMPEG软件编码数据)