A question about h264 encoder

张若 zr92zr at gmail.com
Thu Oct 13 12:58:11 UTC 2016


Anyway, thanks!
But.. the board has both HW and SW 264 encoder on it. There is no problem
to use x264enc.
The problem is with videorate. If I use videorate and x264enc without
setting drop-only as true, there will be problems while streaming. But that
works fine without videorate, or works fine with using imxvpuenc_h264
instead.
I don't know why. I think that could be some problems with framerate,
either with camera or encoder.

2016-10-13 14:26 GMT+02:00 Nuno Mota <mundumelga at gmail.com>:

> It is quite simple.
>
> imxvpuenc_h264 uses imx hardware encoder.
> x264enc uses the cpu, so It's software encoder. You wont be able to use it
> on an ARM CPU. Imx just cant handle it.
>
> Check "top" and you will se the cpu load/usage...
>
> On Oct 13, 2016 1:17 PM, "张若" <zr92zr at gmail.com> wrote:
>
>> I found the solution myself. But still not understand the reason
>> thoroughly.
>>
>> The problem is with the videorate, it needs to be set with
>> drop-only=true, especially for the board. Otherwise, it seems to duplicate
>> several frames and cause a large delay as well.
>> But I still don't why does this happen? and why there is no problem while
>> using imxvpuenc_h264?
>>
>> Hope somebody could explain that!
>>
>> Thanks!
>>
>>
>>
>> 2016-10-13 11:32 GMT+02:00 张若 <zr92zr at gmail.com>:
>>
>>> Hi,
>>>
>>> I am working on the imx6 board. There are two h264/x264 encoder, HW
>>> encoder named imxvpuenc_h264 and SW encoder named x264enc. I tried both of
>>> them. But problem appears.
>>>
>>> The pipeline looks like this: (the video camera capture is 720p)
>>>
>>> imxv4l2videosrc -> capsfilter1 -> videoscale -> videorate ->
>>> videoconvert -> capsfilter2 -> imxvpuenc_h264 (or x264enc) -> queue ->
>>> h264parse -> mpegtsmux -> rtpmp2tpay -> udpsink
>>>
>>> While using imxvpuenc_h264, there is no large latency, but using x264enc
>>> will cause a really large latency (sometimes around 10s and frame stucks).
>>>
>>> When I set "capsfilter2" to lower resolution such as 320x240, the
>>> latency comes much shorter for x264enc. On the other hand, if I remove the
>>> "videoscale -> videorate -> videoconvert" part while using x264enc, there
>>> almost no latency for the streaming.
>>>
>>> For x264enc, I set "tune=zerolatency, key-int-max=32, bframes=0,
>>> speed-preset=1, bitrate=4000 (may changes from 1000 to 10000)".
>>>
>>> I don't know the reason why it happens and how can I deal with that.
>>> Please help!
>>>
>>> Thanks in advance!
>>>
>>>
>>>
>>>
>>
>> _______________________________________________
>> gstreamer-devel mailing list
>> gstreamer-devel at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>
>>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20161013/5f420d76/attachment.html>


More information about the gstreamer-devel mailing list