In one embodiment described herein, a method of transmitting video from a UAV to a ground control station can include generating a real-time video stream using a video camera on the unmanned aerial vehicle. The real-time video stream is transmitted from the UAV to the ground control station. The ground control station then determines whether any packets are missing from the real-time video stream received from the UAV. If packets are missing, the ground control station transmits a missing packet request to the UAV which identifies and requests the missing packets. The UAV then transmits the missing packets to the ground control station based on the missing packet request. The ground control station then generates a reconstructed video stream from the received real-time video stream and from the missing packets. If the ground control station receives the missing packets and can generate the reconstructed video stream within a selected video latency period, the ground control station renders the reconstructed video stream. Otherwise, if the ground control station receives the missing packets and/or generates the reconstructed video stream outside of the selected video latency period, the ground control station initially renders the received real-time video stream, and the ground control station stores the reconstructed video stream for later playback.
If necessary, the missing packets may be requested by the ground control station or transmitted by the UAV a plurality of times. The need for multiple missing packet requests or multiple missing packet transmissions may occur when the initial missing packet request is lost, or if some or all of the retransmitted missing packets are lost.