Closed amymoz closed 5 years ago
For me, this typically means that the Wifi connection to the drone is unstable and noisy. Try again with the drone next to the WiFi antenna, and/or use a WiFi dongle with full-length antenna, and/or use a WiFi repeater.
Good luck.
I encountered the similar problem, The words taht "[ERROR] [1553923975.539334]: fgrab: pyav stream failed - Expected bytes, got VideoStream" always are sent. How can we resolve it?
I encountered the similar problem, The words taht "[ERROR] [1553923975.539334]: fgrab: pyav stream failed - Expected bytes, got VideoStream" always are sent. How can we resolve it?
@slamlixiaodong I encountered the same issue, got any solutions? Thank you.
I'm not sure why this is happening, but I suspect that there might be a mismatch in code versions. Can you report the following?
Hello, anqixu~ I've met with this problem too. I run this code in Linux ubuntu16, 64bit ROS kinetic, python 2.7, pyav 0.1.3. Is that match with your code versions?
I tested with pyav
0.5.2 on 64-bit Ubuntu 18.04 and ROS Melodic, Python 2.7.15+.
The error traces to pyav's open
function, which appears to be expecting a bytes
object rather than a file object. While I couldn't find the specific codebase for pyav 0.1.3, I suspect that it's because of this outdated pyav that the codebase broke. Unfortunately, I did not write the pyav + stream integration, and simply derived from the original TelloPy repo. Later versions of pyav can work with file-like objects, rather than expecting raw bytes, and my understanding is that TelloPy utilizes this fact to hook up a lazy UDP client class to pyav that streams packets when they arrive.
Aside: I loaded Ubuntu 16.04 on docker, installed python-pip
, and tried to pip install av
. While I couldn't install and test successfully due to difficulties such as ffmpeg version incompatibility etc., pip
did try to install pyav 0.6.2. So my first recommendation to you would be to try to upgrade your pyav version: pip2 install --upgrade av
(either with --user
also, or pre-appended with sudo -H
). Otherwise, I unfrotunately don't have the time currently to work on making TelloPy backwards-compatible with pyav 0.1.3, but do welcome contribution from community :)
I tested with
pyav
0.5.2 on 64-bit Ubuntu 18.04 and ROS Melodic, Python 2.7.15+. The error traces to pyav'sopen
function, which appears to be expecting abytes
object rather than a file object. While I couldn't find the specific codebase for pyav 0.1.3, I suspect that it's because of this outdated pyav that the codebase broke. Unfortunately, I did not write the pyav + stream integration, and simply derived from the original TelloPy repo. Later versions of pyav can work with file-like objects, rather than expecting raw bytes, and my understanding is that TelloPy utilizes this fact to hook up a lazy UDP client class to pyav that streams packets when they arrive.Aside: I loaded Ubuntu 16.04 on docker, installed
python-pip
, and tried topip install av
. While I couldn't install and test successfully due to difficulties such as ffmpeg version incompatibility etc.,pip
did try to install pyav 0.6.2. So my first recommendation to you would be to try to upgrade your pyav version:pip2 install --upgrade av
(either with--user
also, or pre-appended withsudo -H
). Otherwise, I unfrotunately don't have the time currently to work on making TelloPy backwards-compatible with pyav 0.1.3, but do welcome contribution from community :)
Thanks for your detailed answer, I've solved this problem by resetting the environment. Now I found that when using 'rqt_image_view', the image had a delay about 10 seconds. Do you meet with this problem?
Best Regards
the delay should be temporary, since pyav buffers the first 10-30 seconds of frames. but then it should catch up. If not, I don't know the solution, maybe try a faster computer?
Greetings, I have trouble streaming live video using ROS Tello package (specifically the tello_driver tello_node.launch). I run into this error: [ERROR] [1548937379.184698]: fgrab: pyav stream failed - [Errno 1094995529] Invalid data found when processing input: ''