Open neilyoung opened 3 years ago
Agent comment from Luce Luo in Zendesk ticket #46055:
Dear Customer,
Thank you for contacting DJI. The SDK doesn't support the RTP/RTSP, if you are going to use the live stream. Please use the RTMP LiveStreamManager. https://developer.dji.com/api-reference/android-api/Components/LiveStreamManager/DJILiveStreamManager.html And the resolution is 720P/30fps default, some drone support the 1080p with setHDLiveViewEnabled method.
Thanks,
Luce Luo DJI Developer Support
The SDK doesn't support the RTP/RTSP, if you are going to use the live stream.
I know, that's why I'm taking the H.264 as it comes from the drone and wrap it with the RTP/RTSP stuff, providing my own RTSP server on the Android device. However, I can't get more than 20 fps on the reception side for 1280 x 720. How can you be sure, your source delivers 30 fps?
Agent comment from Luce Luo in Zendesk ticket #46055:
Dear Customer,
Thank you for contacting DJI. I see. The fps is controlled by the camera, which will be determined by the current view. It's also possible to transmit with a speed lower than 30fps if the current view is stable.
Thanks,
Luce Luo DJI Developer Support
This seems to be happening here. But unfortunately I'm completely unable to make it send with 30 fps. Isn't there any trick, any setting, any API to achieve this?
Agent comment from Luce Luo in Zendesk ticket #46055:
Dear Customer,
Thank you for contacting DJI. Sorry that there is no more setting to adjust it, it comes from the camera.
Thanks,
Luce Luo DJI Developer Support
You mean the H.264 comes from the camera? Doubt that TBH
Agent comment from Luce Luo in Zendesk ticket #46055:
Dear Customer,
Thank you for contacting DJI. Yes, sorry that I can't give more help with this problem. There is no SDK way to control the FPS of the live view.
Thanks,
Luce Luo DJI Developer Support
I was not necessarily after an API, I was after a confirmation, that 20 fps is ok..
Look, this is my theory: You are getting the video as plain YUV or RGB uncompressed from the drone via your wireless channel. Then the SDK utilizes the H.264 encoding caps of the underlaying Android system and encodes (and decodes again via the yuv callback) the frames. In this scenario I would understand if the framerate is 20 fps and lower at 1280x720, since I also cannot achieve more with my means here. But this would at least give the chance to see > 30fps on other, more capable devices (!?)
Agent comment from Luce Luo in Zendesk ticket #46055:
Dear Customer,
Thank you for contacting DJI. Sorry about it. I will record your advice and recommended using the official LiveStream feature for the being time.
Thanks,
Luce Luo DJI Developer Support
Hi,
I'm having a question regarding the frame rate and format of the H.264 stream coming from the SDK via
VideoFeeder.VideoDataListener()
. From the SPS packets in the H.264 stream it looks like variable frame rate:However, I can't get more out of it than 20 fps at 1280 x 720, forwarding the H.264 directly via RTP/RTSP. Any information?
EDIT: Also, following the formula given here:
https://stackoverflow.com/questions/12018535/get-the-width-height-of-the-video-from-h-264-nalu
the image width/height is always 1280x720, at least I have never seen something different with my drone, regardless of the settings on the controller:
I suppose this is somehow depending on the hosting Android device, isn't it?