gounthar Posted November 24, 2019 Posted November 24, 2019 Hi there, I am currently trying to have a solution based on Hx SoCs to encode raw 1080p video on the fly (at smaller resolutions). For the time being, I have: OrangePi Zero 1.4 OrangePi Zero 1.5 OrangePi One OrangePi PC (waiting for it) OrangePi OnePlus The Zero has a heating problem, for sure, the One seems to be better at handling the load. As for the OnePlus and PC, I haven't tried them yet. What I would like to find is a board with eMMC (so that I don't have to change the SDCard regularly), with a good heatsink. I just need an RJ45 plug, power, and I'm good to go. I don't need CSI, video output or anything else. I thought of the NeoPi Core, but I don't know how easy it will be to solder wires on it to get Ethernet. Oh, and the smaller and the cheaper, the better. I'm not stuck with the AllWinner Hx family, that's just because I own some, and they're supposed to be able to hardware encode H.264. Any suggestion, even with other SoCs is welcome. Thanks.
JMCC Posted November 24, 2019 Posted November 24, 2019 Well, AFAIK hardware encoding is not yet supported with the FOSS Cedrus library, which is the only one you can use in mainline kernels. If you want HW encoding on Allwinner, you would need the old and controversial closed-source CedarX binaries for that. They only work with older 3.4/3.10 kernels. So the reason why your SoC is getting so hot is probably because it is using mere CPU power for software encoding. If you want to do h.264 hardware encoding, your best options are rockchips (rk3288, rk3399 and rk3328, ordered by preference), or Odroid XU4/HC1. All of them can do HW encoding with Armbian, if you use my media packages. Notice that rockchips will use gstreamer, while XU4 will use ffmpeg. 2
gounthar Posted November 24, 2019 Author Posted November 24, 2019 Thanks a lot for your input. I started this quest for AllWinner hardware encoding because of this post: https://forum.armbian.com/topic/11551-4kp30-video-on-orange-pi-lite-and-mainline-hardware-acceleration/?do=findComment&comment=88617. Hardware decoding seems to work for @ubobrov, and I want to try the encoding part. FFmpeg is my reference software, so working with it is a big plus for me instead of gstreamer. Maybe I fooled myself and read what I wanted to read regarding H3 hardware encoding. Maybe the hardware decoding is implemented, but not the encoding. For the time being, I have applied the patches to ffmpeg and the kernel. Last time I saw the board, it was busy with building the kernel. Regarding the Rockchips, I have several rk3399 (OrangePi 2 and 4GB, Renegade Elite) but no rk3288 nor rk3328. I've been able to use hardware decoding with ffmpeg which I compiled, and sometimes hardware encoding with gstreamer (because most of the times, it crashes the board). The RockChip ffmpeg fork was supposed to be able to hardware encode Q4 2019, but there haven't been any news for a few months. I also have a XU4, which I have not tested yet. What is used? Vdpau, vaapi, something else? I will have to give it a try. My goal is to have a farm of cheap boards running hardware accelerated h.264 encoding, so that they multicast the downsized content to server for final users. As much as I love XU4, it's not a cheap board, so if you ever have a suggestion of another board (or TVBox) that would be cheap, h.264 hardware able with Armbian and ffmpeg, please let me know.
JMCC Posted November 24, 2019 Posted November 24, 2019 27 minutes ago, gounthar said: Maybe the hardware decoding is implemented, but not the encoding If you follow the link I posted above, you will see at the status matrix that, indeed, encoding is not yet implemented. 27 minutes ago, gounthar said: I also have a XU4, which I have not tested yet. What is used? It has the most standard and easy to implement and use interface, v4l2-m2m 27 minutes ago, gounthar said: As much as I love XU4, it's not a cheap board, so if you ever have a suggestion of another board (or TVBox) that would be cheap, XU4, MC1 and HC1 are sold now for less than $50, which I consider cheap considering its power, features and stability. Take into consideration that one of these can do the work of four to six H3 boards, for example. And if you want to build a farm, you can stack several HC1 or MC1, and put a fan on them, which will make them run steadily at maximum frequency. If you still want something cheaper with HW encoding, then you can go for a 1Gb Rock64, but these boards are having lots of stability problems lately. 1
ubobrov Posted November 24, 2019 Posted November 24, 2019 7 minutes ago, gounthar said: If you follow the link I posted above, you will see at the status matrix that, indeed, encoding is not yet implemented. it's not implemented in v4l2-request and VAAPI but it is perfectly implemented on using old cedrus driver and mainline linux-4.20.17 1
gounthar Posted November 24, 2019 Author Posted November 24, 2019 I answered to your post before reading the link you provided, so yes, it's written, my bad. I will try to follow that page, so that I can switch to H3 when the encoding part will be available. Regarding the XU4, I know it's plenty powerful, and love to see its eight core working at full speed when compiling... But I have yet to test its encoding abilities, because if it can encode only one 1080p at a time, the ratio power/price won't really interesting. Anyway, thanks a lot for your crystal clear answer, the definite links, and your patience answering my vague questions. 1
Recommended Posts