CPC H04N 21/23805 (2013.01) [H04N 21/214 (2013.01); H04N 21/2187 (2013.01); H04N 21/2402 (2013.01); H04N 21/44004 (2013.01); H04N 21/4621 (2013.01); H04N 21/6143 (2013.01)] | 7 Claims |
1. A real-time video transmission system for a cellular-connected unmanned aerial vehicle (UAV) based on an adaptive bitrate, the system comprising:
a UAV, comprising a multi-bitrate streaming module and a simple realtime server (SRS) streaming media server, wherein the multi-bitrate streaming module is configured to perform multi-bitrate encoding on a real-time video captured by the UAV, and stream encoded multi-bitrate videos to the SRS streaming media server, and the SRS streaming media server is configured to allocate stream retrieval addresses for the multi-bitrate videos;
a client, comprising a bitrate adaptation unit that comprises a Media Presentation Description (MPD) parsing module, a downloader module, a player module, and a bitrate decision module, wherein the MPD parsing module is configured to parse an MPD file of a video, the downloader module is configured to download a video stream, collect bandwidth data, and transmit the bandwidth data to the bitrate decision module, the player module is configured to decode and play the video, collect playback data, and transmit the playback data to the bitrate decision module, and the bitrate decision module is configured to make a bitrate decision by combining the bandwidth data and the playback data and using an Adaptive Bitrate (ABR) algorithm with double buffer thresholds; and
a cloud server side configured to map a video pull port of the UAV to a cloud server, such that the client pulls the video stream from the UAV by accessing a corresponding port on the cloud server;
wherein the bitrate decision module is configured to make a bitrate decision by combining the bandwidth data and the playback data and using an ABR algorithm with double buffer thresholds, wherein specifically:
bh represents a high threshold, bl represents a low threshold, and bc represents a current video buffer level, R=[r1, r2, . . . , rn] denotes a set of selectable bitrates, a bitrate of a currently downloaded video is rc, a GOP length is D, a time interval is T, and a predicted bandwidth of a next time interval is B, assuming that d has been downloaded in a current GOP when a bitrate decision for the next time interval is made, and that a bitrate of the GOP required to be downloaded is r:
when r=rc, the current GOP is continued to be downloaded, and after completion of downloading, a video buffer level is:
b=bc+D−d−(D−d)*r/B Formula 1:
when r!=rc, downloading is started from a first frame of the GOP, and after completion of downloading, the video buffer level is:
b=bc+D−d−D*r/B Formula 2:
when bc>bh:
in Formula 2, if there does not exist b≤bh for any given r>rc, a maximum bitrate is requested;
in Formula 2, if there exists b≤bh for any given r>rc, a video that satisfies b≤bh and has a minimum bitrate is selected for downloading;
when bc<bl:
in Formula 2, if there does not exist b≥bl for any given r<rc, a finally requested video bitrate is a minimum bitrate; and
in Formula 2, if there exists b≥bl for any given r<rc, a video that satisfies b≥bl and has a maximum bitrate is selected for downloading.
|