non-GPL H.264 video encoder element for Raspberry Pi 3 or 3B+?

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

non-GPL H.264 video encoder element for Raspberry Pi 3 or 3B+?

Matthew Thyer

I'm looking for a non-GPL licenced x264 video encoder that I can use on the Raspberry Pi v3 (or 3 B+) hardware running some Linux variant. Ideally this encoder should support the NEON video acceleration block that is part of the Raspberry Pi v3 or 3B+ SoC.

 

In the following 19-Nov-2017 post, Nicolas Dufresne summarises use cases for some H.264 encoders:

https://lists.freedesktop.org/archives/gstreamer-devel/2017-November/066181.html

The encoders Nicolas lists are: x264enc (GPL), vaapih264enc (Intel H/W), nvh264enc (nvidia H/W), openh264enc (Cisco free codec for PCs), omxh264enc (Raspberry Pi) & v4l2h264enc (with GStreamer 1.14+).

 

Of these, it would seem that omxh264enc & v4l2h264enc would be of interest.

 

I've not been able to get the video4linux2 plugin (from gst-plugins-good) to provide more than the three elements: v4l2src, v4l2sink & v4l2radio even when I compile v4l-utils v1.14.2 and gstreamer v1.14.1 from source.

I see that the v4l2h264enc functionality was added to gst-plugins-good via Bug 728438

https://bugzilla.gnome.org/show_bug.cgi?id=728438 but I clearly don't understand how to gain access to it.

Is it possible to use this on a Raspberry Pi 3 or 3B+ and would it be NEON accelerated?

 

I have tried an earlier version of omxh264enc but it’s didn’t like the stream from my camera and I’m yet to try again with GStreamer release 1.14.1.

 

I'm aware of the very good x264enc element which is nominally GPL licenced but is supposed to be available under alternate licencing if you contact them but all three attempts I have made to do so have gone unanswered.

Does someone know of a contact method that works?

 

Please help!

 

---

Matthew Thyer

(08) 8313 9283

4.38 Ingkarni Wardli

Adelaide University

 


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
P S
Reply | Threaded
Open this post in threaded view
|

Aw: non-GPL H.264 video encoder element for Raspberry Pi 3 or 3B+?

P S
Helo Matthew,
 
It's working, i use them.
 
Peter
 
Gesendet: Dienstag, 05. Juni 2018 um 05:12 Uhr
Von: "Matthew Thyer" <[hidden email]>
An: "Discussion of the development of and with GStreamer" <[hidden email]>
Betreff: non-GPL H.264 video encoder element for Raspberry Pi 3 or 3B+?

I'm looking for a non-GPL licenced x264 video encoder that I can use on the Raspberry Pi v3 (or 3 B+) hardware running some Linux variant. Ideally this encoder should support the NEON video acceleration block that is part of the Raspberry Pi v3 or 3B+ SoC.

 

In the following 19-Nov-2017 post, Nicolas Dufresne summarises use cases for some H.264 encoders:

https://lists.freedesktop.org/archives/gstreamer-devel/2017-November/066181.html

The encoders Nicolas lists are: x264enc (GPL), vaapih264enc (Intel H/W), nvh264enc (nvidia H/W), openh264enc (Cisco free codec for PCs), omxh264enc (Raspberry Pi) & v4l2h264enc (with GStreamer 1.14+).

 

Of these, it would seem that omxh264enc & v4l2h264enc would be of interest.

 

I've not been able to get the video4linux2 plugin (from gst-plugins-good) to provide more than the three elements: v4l2src, v4l2sink & v4l2radio even when I compile v4l-utils v1.14.2 and gstreamer v1.14.1 from source.

I see that the v4l2h264enc functionality was added to gst-plugins-good via Bug 728438

https://bugzilla.gnome.org/show_bug.cgi?id=728438 but I clearly don't understand how to gain access to it.

Is it possible to use this on a Raspberry Pi 3 or 3B+ and would it be NEON accelerated?

 

I have tried an earlier version of omxh264enc but it’s didn’t like the stream from my camera and I’m yet to try again with GStreamer release 1.14.1.

 

I'm aware of the very good x264enc element which is nominally GPL licenced but is supposed to be available under alternate licencing if you contact them but all three attempts I have made to do so have gone unanswered.

Does someone know of a contact method that works?

 

Please help!

 

---

Matthew Thyer

(08) 8313 9283

4.38 Ingkarni Wardli

Adelaide University

 

_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: non-GPL H.264 video encoder element for Raspberry Pi 3 or 3B+?

Tim Müller
In reply to this post by Matthew Thyer
On Tue, 2018-06-05 at 03:12 +0000, Matthew Thyer wrote:
 
> I have tried an earlier version of omxh264enc but it’s didn’t like
> the stream from my camera and I’m yet to try again with GStreamer
> release 1.14.1.

omxh264enc from gst-omx is the default encoder on the Raspberry Pi and
should just work.

How did it "not like" the stream from your camera?

Cheers
-Tim

--
Tim Müller, Centricular Ltd - http://www.centricular.com
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Aw: non-GPL H.264 video encoder element for Raspberry Pi 3 or 3B+?

Krzysztof Konopko-3
In reply to this post by P S
Unfortunately gst-mmal hasn't got any encoders implemented (yet) :)

Kris

On Tue, 2018-06-05 at 07:08 +0200, P S wrote:
Helo Matthew,
 
It's working, i use them.
 
Peter
 
Gesendet: Dienstag, 05. Juni 2018 um 05:12 Uhr
Von: "Matthew Thyer" <[hidden email]>
An: "Discussion of the development of and with GStreamer" <[hidden email]>
Betreff: non-GPL H.264 video encoder element for Raspberry Pi 3 or 3B+?

I'm looking for a non-GPL licenced x264 video encoder that I can use on the Raspberry Pi v3 (or 3 B+) hardware running some Linux variant. Ideally this encoder should support the NEON video acceleration block that is part of the Raspberry Pi v3 or 3B+ SoC.

 

In the following 19-Nov-2017 post, Nicolas Dufresne summarises use cases for some H.264 encoders:

https://lists.freedesktop.org/archives/gstreamer-devel/2017-November/066181.html

The encoders Nicolas lists are: x264enc (GPL), vaapih264enc (Intel H/W), nvh264enc (nvidia H/W), openh264enc (Cisco free codec for PCs), omxh264enc (Raspberry Pi) & v4l2h264enc (with GStreamer 1.14+).

 

Of these, it would seem that omxh264enc & v4l2h264enc would be of interest.

 

I've not been able to get the video4linux2 plugin (from gst-plugins-good) to provide more than the three elements: v4l2src, v4l2sink & v4l2radio even when I compile v4l-utils v1.14.2 and gstreamer v1.14.1 from source.

I see that the v4l2h264enc functionality was added to gst-plugins-good via Bug 728438

https://bugzilla.gnome.org/show_bug.cgi?id=728438 but I clearly don't understand how to gain access to it.

Is it possible to use this on a Raspberry Pi 3 or 3B+ and would it be NEON accelerated?

 

I have tried an earlier version of omxh264enc but it’s didn’t like the stream from my camera and I’m yet to try again with GStreamer release 1.14.1.

 

I'm aware of the very good x264enc element which is nominally GPL licenced but is supposed to be available under alternate licencing if you contact them but all three attempts I have made to do so have gone unanswered.

Does someone know of a contact method that works?

 

Please help!

 

---

Matthew Thyer

(08) 8313 9283

4.38 Ingkarni Wardli

Adelaide University

 

_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: non-GPL H.264 video encoder element for Raspberry Pi 3 or 3B+?

Nicolas Dufresne-5
In reply to this post by Matthew Thyer
Hi Matthew,

Le lun. 4 juin 2018 23:13, Matthew Thyer <[hidden email]> a écrit :

I'm looking for a non-GPL licenced x264 video encoder that I can use on the Raspberry Pi v3 (or 3 B+) hardware running some Linux variant. Ideally this encoder should support the NEON video acceleration block that is part of the Raspberry Pi v3 or 3B+ SoC.

 

For now, on RPi, the only available solution is to do a custom build of gst-omx (build target RPi), which I believe is shipped with raspbian. This will provide you with an hardware accelerated H264 encoder. It's quite capable, a bit tricky to configure.

In the following 19-Nov-2017 post, Nicolas Dufresne summarises use cases for some H.264 encoders:

https://lists.freedesktop.org/archives/gstreamer-devel/2017-November/066181.html

The encoders Nicolas lists are: x264enc (GPL), vaapih264enc (Intel H/W), nvh264enc (nvidia H/W), openh264enc (Cisco free codec for PCs), omxh264enc (Raspberry Pi) & v4l2h264enc (with GStreamer 1.14+).

 

Of these, it would seem that omxh264enc & v4l2h264enc would be of interest.

 

I've not been able to get the video4linux2 plugin (from gst-plugins-good) to provide more than the three elements: v4l2src, v4l2sink & v4l2radio even when I compile v4l-utils v1.14.2 and gstreamer v1.14.1 from source.

I see that the v4l2h264enc functionality was added to gst-plugins-good via Bug 728438

https://bugzilla.gnome.org/show_bug.cgi?id=728438 but I clearly don't understand how to gain access to it.

Is it possible to use this on a Raspberry Pi 3 or 3B+ and would it be NEON accelerated?

 

I have tried an earlier version of omxh264enc but it’s didn’t like the stream from my camera and I’m yet to try again with GStreamer release 1.14.1.

 

I'm aware of the very good x264enc element which is nominally GPL licenced but is supposed to be available under alternate licencing if you contact them but all three attempts I have made to do so have gone unanswered.

Does someone know of a contact method that works?

 

Please help!

 

---

Matthew Thyer

(08) 8313 9283

4.38 Ingkarni Wardli

Adelaide University

 

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

RE: non-GPL H.264 video encoder element for Raspberry Pi 3 or 3B+?

Matthew Thyer
In reply to this post by Tim Müller
I was using the standard GStreamer packages on Ubuntu Xenial (16.04 LTS) at the time which are version 1.8.3. At that time, Ubuntu didn't provide the gst-omx module in their repositories so I compiled it from source but had to go way way back to gst-omx version 1.2.0 (the newest version that pre-dated GStreamer version 1.8.3).

When I tried to encode the video using the video4linux2 source element (v4l2src) I got the following errors:

0:00:04.997773653  1735   0xbf53b0 ERROR             omxh264enc gstomxh264enc.c:421:gst_omx_h264_enc_set_format:<omxh264enc-omxh264enc0> Unsupported profile constrained-baseline
0:00:04.997947195  1735   0xbf53b0 ERROR            omxvideoenc gstomxvideoenc.c:1066:gst_omx_video_enc_set_format:<omxh264enc-omxh264enc0> Subclass failed to set the new format
0:00:04.998006674  1735   0xbf53b0 WARN            videoencoder gstvideoencoder.c:623:gst_video_encoder_setcaps:<omxh264enc-omxh264enc0> rejected caps video/x-raw, format=(string)I420, width=(int)320, height=(int)200, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)90/1
0:00:05.005114283  1735   0xbf53b0 ERROR             omxh264enc gstomxh264enc.c:421:gst_omx_h264_enc_set_format:<omxh264enc-omxh264enc0> Unsupported profile constrained-baseline
0:00:05.005219595  1735   0xbf53b0 ERROR            omxvideoenc gstomxvideoenc.c:1066:gst_omx_video_enc_set_format:<omxh264enc-omxh264enc0> Subclass failed to set the new format
0:00:05.005275845  1735   0xbf53b0 WARN            videoencoder gstvideoencoder.c:623:gst_video_encoder_setcaps:<omxh264enc-omxh264enc0> rejected caps video/x-raw, format=(string)I420, width=(int)320, height=(int)200, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)90/1
0:00:05.005409127  1735   0xbf53b0 WARN                GST_PADS gstpad.c:4092:gst_pad_peer_query:<v4l2src0:src> could not send sticky events
0:00:05.006386107  1735   0xbf53b0 WARN          v4l2bufferpool gstv4l2bufferpool.c:748:gst_v4l2_buffer_pool_start:<v4l2src0:pool:src> Uncertain or not enough buffers, enabling copy threshold
0:00:05.413047735  1735   0xbf53b0 WARN          v4l2bufferpool gstv4l2bufferpool.c:1196:gst_v4l2_buffer_pool_dqbuf:<v4l2src0:pool:src> Driver should never set v4l2_buffer.field to ANY
0:00:05.413150026  1735   0xbf53b0 WARN          v4l2bufferpool gstv4l2bufferpool.c:1741:gst_v4l2_buffer_pool_process:<v4l2src0:pool:src> Invalid buffer size, this is likely due to a bug in your driver, dropping
0:00:05.413205756  1735   0xbf53b0 WARN          v4l2bufferpool gstv4l2bufferpool.c:1958:gst_v4l2_buffer_pool_process:<v4l2src0:pool:src> Dropping corrupted buffer without payload
0:00:05.418148311  1735   0xbf53b0 WARN          v4l2bufferpool gstv4l2bufferpool.c:1741:gst_v4l2_buffer_pool_process:<v4l2src0:pool:src> Invalid buffer size, this is likely due to a bug in your driver, dropping

I think the reason for these errors is described in the mailing list here: https://lists.freedesktop.org/archives/gstreamer-openmax/2013-December/000761.html

I'm not too worried about this as I'm now compiling GStreamer version 1.14.1 from source and will be trying the new omxh264enc element again today.

-----Original Message-----
From: gstreamer-devel <[hidden email]> On Behalf Of Tim Müller
Sent: Tuesday, 5 June 2018 5:57 PM
To: [hidden email]
Subject: Re: non-GPL H.264 video encoder element for Raspberry Pi 3 or 3B+?

On Tue, 2018-06-05 at 03:12 +0000, Matthew Thyer wrote:

> I have tried an earlier version of omxh264enc but it’s didn’t like the
> stream from my camera and I’m yet to try again with GStreamer release
> 1.14.1.

omxh264enc from gst-omx is the default encoder on the Raspberry Pi and should just work.

How did it "not like" the stream from your camera?

Cheers
-Tim

--
Tim Müller, Centricular Ltd - http://www.centricular.com _______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: non-GPL H.264 video encoder element for Raspberry Pi 3 or 3B+?

Nicolas Dufresne-5
Le mercredi 06 juin 2018 à 00:20 +0000, Matthew Thyer a écrit :
> 0:00:05.005114283  1735   0xbf53b0 ERROR             omxh264enc
> gstomxh264enc.c:421:gst_omx_h264_enc_set_format:<omxh264enc-
> omxh264enc0> Unsupported profile constrained-baseline

The pi does not support that profile, try baseline or main.

Nicolas
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

RE: non-GPL H.264 video encoder element for Raspberry Pi 3 or 3B+?

Matthew Thyer
Thanks Nicolas,

I've a bit to learn yet regarding profiles

-----Original Message-----
From: gstreamer-devel <[hidden email]> On Behalf Of Nicolas Dufresne
Sent: Wednesday, 6 June 2018 10:38 AM
To: Discussion of the development of and with GStreamer <[hidden email]>
Subject: Re: non-GPL H.264 video encoder element for Raspberry Pi 3 or 3B+?

Le mercredi 06 juin 2018 à 00:20 +0000, Matthew Thyer a écrit :
> 0:00:05.005114283  1735   0xbf53b0 ERROR             omxh264enc
> gstomxh264enc.c:421:gst_omx_h264_enc_set_format:<omxh264enc-
> omxh264enc0> Unsupported profile constrained-baseline

The pi does not support that profile, try baseline or main.

Nicolas
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel