[Libav-user] How to use rkmpp decoder?

Anton Prikazchikov prikaz08 at mail.ru
Wed Apr 11 17:41:58 EEST 2018


Hm, i can't find something like ffrkmpp* functions in my .h files of ffmpeg.

Could this be a bug of ffmpeg? (I added --enable-rkmpp flag when I was building ffmpeg)
>Среда, 11 апреля 2018, 18:05 +04:00 от Henri Zikken <zikken at xs4all.nl>:
>
>Please note I don’t have any experience with the lib, it was something I found with a fast google search.
> 
>FFMpeg does support hardware encoding, see:
>https://ffmpeg.org/pipermail/ffmpeg-devel/2017-June/212339.html
> 
>So you could do it that way as well. As far as I can tell, it would indeed entail compiling ffmpeg with the mentioned flag, and then use the alternate functions for everything, as you see in that changeset.
> 
>So, instead of avcodec_open2, you would use ffrkmpp_open_decoder and so forth.
> 
>I have no experience with using this. But if you look at that patchset which adds the rockchip support, it should be pretty obvious.
> 
>Regards,
> 
>Henri Zikken
> 
>Van: Libav-user < libav-user-bounces at ffmpeg.org >  Namens  Anton Prikazchikov
>Verzonden: woensdag 11 april 2018 15:59
>Aan: "This list is about using libavcodec, libavformat, libavutil,libavdevice and libavfilter." < libav-user at ffmpeg.org >
>Onderwerp: Re: [Libav-user] How to use rkmpp decoder?
> 
>Thanks for answer!
>
>I will be testing the lib which you sent.
>
>But still, do you know what mean "--enable-rkmpp" flag? I  thought that ffmpeg supports hardware decoding too.
>>Среда, 11 апреля 2018, 17:37 +04:00 от Henri Zikken < zikken at xs4all.nl >:
>>The packet you get, is raw stream data. If you want to decode it, you have to send the packet tot he decoder, and then receive back pcm frames from it. However, you don’t want to do that, as you want to use the hardware to decode, not ffmpeg. So this is why it’s kind of useless to put ffmpeg in it, as you want to do everything ffmpeg does, in hardware.
>> 
>>I’d consider using one of the multiple available rtp libs, like this one:
>>http://research.edm.uhasselt.be/jori/page/CS/Jrtplib.html
>> 
>>to receive the stream, and then the mpp software to do the decoding/encoding and so forth.  FFMpeg would be bloated and overly complicated as ‘just an rtp receiver’.
>> 
>>Regards,
>> 
>>Henri Zikken
>> 
>>Van: Libav-user < libav-user-bounces at ffmpeg.org >  Namens  Anton Prikazchikov
>>Verzonden: woensdag 11 april 2018 13:05
>>Aan: "This list is about using libavcodec, libavformat, libavutil,libavdevice and libavfilter." < libav-user at ffmpeg.org >
>>Onderwerp: Re: [Libav-user] How to use rkmpp decoder?
>> 
>>I need an avpacket because i read rtcp stream using by ffmpeg and receive from the rtcp stream an avpacket. Mpp can't read rtcp stream as i know.
>>
>>Also I saw that ffmpeg have "--enable-rkmpp" flag a t the configuration stage. And if I'm not mistaken this flag have to enable decoding using by rkmpp, but I can't run it... What must this flag do?
>>
>>>Basically the packet->data is just the raw data. You can just pass this on to your mpp packet as the buffer. Packet->size gives you the size.
>>I tried to add the received packet->data to mpppacket, but it doesn't work. Also i want to clarify d oes the packet->data accurately contain unmodified H264 data?(I receive H264 data stream)
>>>Вторник, 10 апреля 2018, 21:16 +04:00 от Henri Zikken < zikken at xs4all.nl >:
>>>I don’t see why you would want an avpacket in the first place, then. As ffmpeg won’t do the decoding, why bother with ffmpeg?
>>> 
>>>Basically the packet->data is just the raw data. You can just pass this on to your mpp packet as the buffer. Packet->size gives you the size.
>>> 
>>>Regards,
>>> 
>>>Henri Zikken
>>> 
>>> 
>>>Van: Libav-user < libav-user-bounces at ffmpeg.org >  Namens  Anton Prikazchikov
>>>Verzonden: dinsdag 10 april 2018 08:34
>>>Aan: "This list is about using libavcodec, libavformat, libavutil,libavdevice and libavfilter." < libav-user at ffmpeg.org >
>>>Onderwerp: Re: [Libav-user] How to use rkmpp decoder?
>>> 
>>>My purpose is decoding a received from RTCP stream h264 AVPacket-s to AVFrame-s using by hardware of rk3399 (Rockchip RK3399 is a processor for computing(aarch64, Rockchip platform))
>>>
>>>I found that rk3399 has mpp. Media Process Platform(mpp) is the video codec parser and  Hardware Abstraction Layer library for the Rockchip platforms.
>>>Mpp provides C API for decoding h264 video files using by hardware of Rockchip platform.
>>>
>>>And now i am thinking that the problem is converting from AVPacket(contain H264 data from RTCP stream) to MppPacket(this packet i will send to hardware decoder)
>>>
>>>Thanks,
>>>Anton Prikazchikov
>>>>Понедельник, 9 апреля 2018, 20:06 +04:00 от Henri Zikken < zikken at xs4all.nl >:
>>>>Ok, the rk339 is soms sort of computer. You are receiving a stream on that computer. Now you wish to decode that stream.
>>>> 
>>>>What is your purpose? What do you mean by decoding a stream? What has MPP got to do witht his all?
>>>> 
>>>>Ffmpeg can decode H264. See the docs for a full example of this:
>>>> 
>>>>https://ffmpeg.org/doxygen/trunk/decoding__encoding_8c-source.html
>>>> 
>>>>You need more than just including .h files. The .h files can be seen as ‘descriptions of stuff to be found somewhere else’. So having the .h files might make it compile, but then it won’t link or won’t run due to missing files.
>>>> 
>>>>You need the compiled .so, .a or .dll files. So you need to compile ffmpeg yourself, or find the binaries suitable for your system.
>>>> 
>>>>Regards,
>>>> 
>>>>Henri Zikken
>>>> 
>>>>Van: Libav-user < libav-user-bounces at ffmpeg.org >  Namens  Anton Prikazchikov
>>>>Verzonden: maandag 9 april 2018 16:27
>>>>Aan: libav-user at ffmpeg.org
>>>>Onderwerp: [Libav-user] How to use rkmpp decoder?
>>>> 
>>>>Hello,
>>>>
>>>>I have rk3399 and installed mpp( https://github.com/rockchip-linux/mpp ).
>>>>
>>>>I am receiving rtsp stream using by ffmpeg(C++).
>>>>And now I have to decode h264 video using by mpp but I don't understand how to do this. 
>>>>
>>>>I found  https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/rkmppdec.c   and try to use this code for decoding.
>>>>I stopped on the code line below:
>>>>ret =  ff_decode_get_packet (avctx, &pkt);
>>>>
>>>>This function requires .h files from ffmpeg which i have not in my compiled version. Could someone prompt can I add some flags at configuration stage for .h files or somthing else?(I don't want take these files from github src)
>>>>
>>>>Or maybe is there a better way for h264 decoding using by hw?
>>>>
>>>>Thanks,
>>>>Anton Prikazchikov
>>>>_______________________________________________
>>>>Libav-user mailing list
>>>>Libav-user at ffmpeg.org
>>>>http://ffmpeg.org/mailman/listinfo/libav-user
>>> 
>>>_______________________________________________
>>>Libav-user mailing list
>>>Libav-user at ffmpeg.org
>>>http://ffmpeg.org/mailman/listinfo/libav-user
>>
>>
>>С Уважением,
>>Приказчиков Антон
>>_______________________________________________
>>Libav-user mailing list
>>Libav-user at ffmpeg.org
>>http://ffmpeg.org/mailman/listinfo/libav-user
>_______________________________________________
>Libav-user mailing list
>Libav-user at ffmpeg.org
>http://ffmpeg.org/mailman/listinfo/libav-user
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ffmpeg.org/pipermail/libav-user/attachments/20180411/438fc25e/attachment.html>


More information about the Libav-user mailing list