Hi there,
for our product we use the Torizon OS Reference image to build an Audio&Video Intercom like system. The idea is to use baresip as SIP client and Qt for the GUI.
A prototype is working fine, but some questions came up around the usage of the H265 video codec.
Baresip seems to only support H265 through avcodec from ffmpeg. This means using GPL licensed code and also that we need to pay royalties for the codec, and that we only use software en/decoding. Is this correct?
How is it possible to use a SIP client (can also be a different one) that uses HW accelerated en/decoding and with this hopefully also already payed royalties by the HW vendor?
Software summary
------------------------------------------------------------
Bootloader: U-Boot
Kernel version: 5.15.148-6.8.0-devel+git.8c5c2dcbf6ba #1-TorizonCore SMP PREEMPT Tue Aug 6 10:01:59 UTC 2024
Kernel command line: root=LABEL=otaroot rootfstype=ext4 quiet logo.nologo vt.global_cursor_default=0 plymouth.ignore-serial-consoles splash fbcon=map:3 ostree=/ostree/boot.0/torizon/684a2f4fdf5136dca4fca39e20bf15480f2b730ccaaf56b48dea1fb6995cf4a2/0
Distro name: NAME="***** OS"
Distro version: VERSION_ID=6.8.0-devel-20241125103542-build.0
Distro variant: VARIANT="Minimal"
Hostname: verdin-imx8mp-15288758
------------------------------------------------------------
Hardware info
------------------------------------------------------------
HW model: Toradex Verdin iMX8M Plus WB on Verdin Development Board
Toradex version: 0058 V1.1B
Serial number: 15288758
Processor arch: aarch64
------------------------------------------------------------
Hi, I’m the Toradex AI Assistant. The Toradex Support team will follow up with you shortly!
Did you like my answer?
Hello,
Thank you for reaching out with your question about using the H265 video codec in your Audio & Video Intercom system on the Toradex Verdin iMX8M Plus. You’re correct that using H265 through FFmpeg’s avcodec involves GPL licensing, which requires compliance with its terms, such as making your source code available. Additionally, there are potential royalty fees associated with the H265 codec.
To address these concerns, you might consider using a SIP client that supports hardware-accelerated H265 encoding and decoding. The iMX8M Plus platform often comes with hardware acceleration capabilities for video codecs, and many hardware vendors provide libraries that handle these codecs with royalties already covered. This can help you avoid the complexities of GPL licensing and additional royalty payments associated with software-based solutions.
To find a suitable SIP client or library, you can explore options that are specifically designed to leverage the hardware capabilities of the iMX8M Plus. Look for documentation or community forums related to the iMX8M Plus that might highlight compatible SIP clients or libraries. Additionally, you might want to check if the Torizon ecosystem offers any pre-integrated solutions that could meet your requirements.
By utilizing hardware acceleration, you can achieve more efficient video processing and potentially simplify compliance with licensing requirements. This approach not only enhances performance but also aligns with your goal of managing licensing and royalty obligations effectively.
I hope this helps you in your development process. If you have any more questions, feel free to ask.
Best regards,
Toradex AI Assistant
Please, also check if these links can help you solve your problem:
@bruno.tx I think we shorty spoke in person about this questions. With gstreamer I can verify that hw acceleration is used to decode videos with v4l2h264dec. But I don’t see how I can use it within baresip. Do you have experience with this?
While I don’t have direct experience with ffmpeg or SIP, I can give a few pointers in this subject.
The supported way to use the video encoders and decoders on the Verdin iMX8MP is using GStreamer, primarily via the vpudec, vpuenc_h264, and vpuenc_h265 elements.
However, the v4l2h265enc, v4l2h264enc, v4l2h265dec, and v4l2h264dec elements also work. The fact that these elements work indicates that standard interfaces for video encoding/decoding from Video4Linux are available.
Therefore, it should also be possible to use these via ffmpeg, via h265_v4l2m2m or h264_v4l2m2m.
I am not familiar enough with ffmpeg to check if this is being done by baresip or not, but you can test if this works in the first place with ffmpeg commands.
Otherwise, if there is a SIP client that uses GStreamer it would be easier to debug if it is using the hardware decoders/encoders.