硬件加速的h264编码可能吗?


12

从摄像机板上录制视频时,Raspberry Pi将执行硬件加速的h264编码。当源图像不是直接来自相机时,如何编码h264(使用硬件加速)?

是否有任何支持此功能的命令行工具?

如果没有,我应该在寻找什么API来实现这一目标?


您在编码什么,目前如何编码?-您是否要转换视频文件,从图像和声音中渲染它们,等等?
2014年

@Wilf我对此总体上很感兴趣,但是我确实有一个当前的应用程序:将时间间隔直接编码为视频。我不能使用raspivid,因为我需要1/5和2 fps之间的低帧率。同样,在我的光照条件下(弱光),raspivid自动曝光也会发生振荡。因此,我想使用raspistill,但直接将其编码为视频,这样结果就不会占用太多空间(如JPEG那样)。作为第二个应用程序,我想使用Mathematica实时对每个帧进行后期处理(这将占用大量CPU时间),然后将其发送以编码为h264。
Szabolcs

1
@Wilf我确实有一个部分解决方案,我认为应该可以解决这个问题raspiyuv -o - | rpi-encode-yuv:(大概)这个rpi-encode-yuv工具就是从这里开始的。帧大小在此工具中进行了硬编码,因此您需要在C文件的开头进行更改并重新编译。不幸的是,我尚未设法获得正确对齐的输出,因为raspiyuv似乎没有将帧大小编码到其输出中。我得到一个逐渐变化的画面,最终变成垃圾。仍在努力。
Szabolcs

Answers:


8

GStreamer包含在Raspbian中,其OpenMAX插件将使用Raspberry Pi的硬件​​编码功能。

请参阅此链接,以获取有关执行所需操作的教程:https : //www.raspberrypi.org/forums/viewtopic.php?t=72435

如果您对转码感兴趣,我已经发布了另一个可能使您感兴趣的问题的答案: 硬件H264编码可以达到什么速度?


谢谢!我目前无法对此进行测试,但会根据您的教程预先接受。
Szabolcs 2015年

1

看起来像是自己编译ffmpeg一样,在RPi3B +上,您可以获得

1920 X 1080 JPEG图像序列编码高复杂度30 FPS视频–显着的运动和帧内详细信息–高质量设置:

基于软件的H.264编码(CPU):2.6 FPS(比实时速度慢11.5倍)

基于硬件的H.264编码(GPU):6.3 FPS(比实时速度慢4.8倍)

640 X 480 JPEG图像序列编码高复杂度30 FPS视频–明显的运动和帧内详细信息–高质量设置:

基于软件的H.264编码(CPU):18 FPS(比实时速度慢1.7倍)

基于硬件的H.264编码(GPU):38 FPS(比实时快1.3倍)

帮助实现所有这些功能的脚本位于论坛主题中

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.