编解码 | Transcoding - jjm2473/ffmpeg-rk GitHub Wiki

注意:只要使用h264_rkmpp编码,前面一定要有scale_rga过滤器,因为scale_rga过滤器会自动处理非硬件帧,使其能被h264_rkmpp读取,所以不管是否缩放视频尺寸,h264_rkmpp编码前都要使用scale_rga。(除非你能确保输入的文件会被MPP解码)

Note: As long as you use h264_rkmpp encoding, there must be a scale_rga filter in front, because the scale_rga filter will automatically process non-hardware frames so that they can be read by h264_rkmpp, so regardless of whether the video size is scaled or not, scale_rga must be used before h264_rkmpp encoding. (Unless you ensure that the input file will be decoded by MPP)


硬件转码成h264 (Hardware Transcode to h264):

ffmpeg -i /usr/local/test.mp4 -vf 'scale_rga' -c:v h264_rkmpp -q:v 80 -f matroska -y test.mkv

硬件转码成h264,同时进行硬件缩放 (Hardware Transcode to h264, and scale down to 1280x720 using RGA):

ffmpeg -i /usr/local/test.mp4 -vf 'scale_rga=w=1280:h=720' -c:v h264_rkmpp -q:v 80 -f matroska -y test.mkv

或者 (OR)

ffmpeg -i /usr/local/test.mp4 -vf 'scale_rga=1280x720' -c:v h264_rkmpp -q:v 80 -f matroska -y test.mkv

使用硬件解码,软件编码成h264 (Software Transcode to h264):

ffmpeg -i /usr/local/test.mp4 -vf 'scale_rga,hwdownload,scale' -c:v libx264 -f matroska -y test.mkv

使用硬件解码,软件编码成png图片 (Transcode to png):

ffmpeg -i /usr/local/test.mp4 -an -vframes 1 -vf 'scale_rga,hwdownload,scale' -c:v png -f image2 -y test.png

使用硬件解码并缩放,软件编码成png图片 (Transcode to png, and scale down to 1280x720 using RGA):

ffmpeg -i /usr/local/test.mp4 -an -vframes 1 -vf 'scale_rga=1280x720,hwdownload,scale' -c:v png -f image2 -y test.png

软件解码,硬件编码(需要指定解码器,一般用不上):

ffmpeg -c:v h264 -i /usr/local/test.mp4 -vf 'scale_rga' -c:v h264_rkmpp -q:v 80 -f matroska -y test.mkv

将摄像头(v4l2)视频数据转换成RGB565,同时缩放到320x240,用于屏幕(Framebuffer)显示(不需要MPP支持):

ffmpeg -thread_queue_size 2 -f v4l2 -video_size 640x480 -i /dev/video0 -vf 'scale_rga=320x240:format=rgb565,hwdownload,scale' -an -c:v rawvideo -f fbdev /dev/fb0

将摄像头(v4l2)视频MJPEG数据转换成RGB565,同时缩放到320x240,用于屏幕(Framebuffer)显示:

ffmpeg -thread_queue_size 2 -f v4l2 -input_format mjpeg -video_size 1280x960 -i /dev/video0 -vf 'scale_rga=320x240:format=rgb565,hwdownload,scale' -an -c:v rawvideo -f fbdev /dev/fb0