GoProStream icon indicating copy to clipboard operation
GoProStream copied to clipboard

Latest version of GoPro Hero 4 Black Doesn't Work With Your Method On Windows

Open dantheman213 opened this issue 7 years ago • 25 comments

As the title suggests: Latest version of GoPro Hero 4 Black Doesn't Work With Your Method. I've followed the scripts and even tried to run the keepalive script manually while issuing the restart command using other players like VLC (besides FFPlay) -- nothing.

dantheman213 avatar Mar 21 '17 21:03 dantheman213

Just tested with HERO4 Black - FW Version 5.00 which is the latest firmware version according to the app and it works.

screenshot from 2017-03-21 22-18-56

I am going to need a log or a screenshot. Make sure you have ffplay accessible as ffplay command. I tested this on Arch Linux,

KonradIT avatar Mar 21 '17 21:03 KonradIT

I'm trying to run this on Windows 10 (lol I know). I installed FFMPEG for Windows and Python 3 for Windows and I wasn't able to get this to work. I didn't see anything in the code, that ought not to work on Windows.. any idea what could be going on? I modified the save path to be Windows friendly and when I run it FFPLAY runs but then a GUI window wont pop open and no result appears to be happening on the FFPLAY output in the command prompt.

Any help would be appreciated.

dantheman213 avatar Mar 22 '17 00:03 dantheman213

I only changed the path but I included my script just in case:

GoProStream.py.txt

I have attached a screenshot of my executing your script. As I said previously, FFPLAY will appear to run but a GUI window never appears and I don't see any input or updates in the command prompt that I would expect to see when FFPLAY is running appropriately capture .

dantheman213 avatar Mar 22 '17 00:03 dantheman213

there may be an issue with firewall

KonradIT avatar Mar 22 '17 05:03 KonradIT

I disabled the firewall completely for my test and that had no effect. :( I confirmed Python was working with another script and that FFPLAY would work on a local media file -- everything worked. I also tried this with a Ubuntu VM and mapped my host wifi to the guest. Was able to see GoPro IP but running your script had the same effect as what happened above.

Any idea what could be going on here?

dantheman213 avatar Mar 22 '17 08:03 dantheman213

No idea, I'll fire up a windows VM later this afternoon to check.

See these maybe it helps:

https://github.com/streamlink/streamlink/issues/487

http://stackoverflow.com/questions/16523746/ffmpeg-hangs-when-run-in-background

https://ffmpeg.zeranoe.com/forum/viewtopic.php?t=832

Maybe try restreaming it to a local URL? https://github.com/KonradIT/gopro-py-api/blob/master/goprocam/GoProCamera.py#L597

KonradIT avatar Mar 22 '17 08:03 KonradIT

Hey @dantheman213 please test the following on Windows 10:

See if you can get a stream by first pairing your camera with the mobile app Capture to get a live preview and then start the script on your computer. Both computer and phone need to be connected to GoPro Wifi.

KonradIT avatar Mar 23 '17 19:03 KonradIT

I actually tested this idea already during my initial testing and wasn't able to get the stream running. :(

dantheman213 avatar Mar 23 '17 20:03 dantheman213

wow, this is a FFmpeg problem then. I have a Windows 10 VM now, I'll see what I can do.

KonradIT avatar Mar 23 '17 20:03 KonradIT

@dantheman23 this is definitely a windows problem.. IMG_20170323_222046.jpg

IMG_20170323_222107.jpg

First pic: the GoPro stream

Second pic: some random udp I just made up

related: https://support.microsoft.com/en-us/help/883831/a-client-may-not-be-able-to-connect-to-multicast-streams-or-to-other-user-datagram-protocol-streams-through-windows-firewall-by-using-windows-media-player

KonradIT avatar Mar 23 '17 21:03 KonradIT

disabled firewall both private and public, allowed UDP 8554 to come in. I don't know, maybe I'll try VLC or other media player tomorrow (maybe this mpc-hc can help)

KonradIT avatar Mar 23 '17 21:03 KonradIT

Right? How weird is it! I'm glad that you were able to replicate my problem.

I completely disabled the firewall and tried -- nothing. Then I fired up my Ubuntu 16.10 virtual machine and mapped the Wifi as a secondary network card in the VM.. connected to the GoPro WiFi network and still nothing inside the VM either. :(

Side frustration: So lame.. this was a $500 camera.. there are action cameras for half that on Amazon that make it EASY to stream wirelessly rather than lock you out.. sigh.

I tried VLC btw and wasn't able to get it work either. I'm wondering if the issue is on the kernel level or something since the MS article you linked seems to indicate it might be on the OS level. But if you do get it to work I'm more then happy to perfect your method and submit a patch to your code base for other Windows users who want to unlock their GoPro's abilities.

dantheman213 avatar Mar 24 '17 00:03 dantheman213

screenshot from 2017-03-26 20-40-44

Does not work with nodejs api

KonradIT avatar Mar 26 '17 18:03 KonradIT

Would using Wireshark on Windows and comparing the traffic with the traffic from a Ubuntu session help at all?

Sounds like it's on the OS or network level.

dantheman213 avatar Mar 26 '17 19:03 dantheman213

Yes that can help

KonradIT avatar Mar 26 '17 20:03 KonradIT

I'm not familiar with it -- it was a suggestion for someone who has spent more time on this than I.

dantheman213 avatar Mar 26 '17 20:03 dantheman213

@dantheman213 possible solution

KonradIT avatar May 04 '17 14:05 KonradIT

Had the same problem on Mac OSX El capitan. GoPro hero 4 black Version 5.00 seems not to stream. Has anyone found a solution?

AlbertoLanaro avatar Sep 25 '17 15:09 AlbertoLanaro

What are your flags @AlbertoLanaro ?

KonradIT avatar Sep 25 '17 16:09 KonradIT

@KonradIT I solved the problem. By looking at UDP traffic in wireshark I noticed that the camera does not stream if it is in the "settings" section. Thank you anyway

AlbertoLanaro avatar Sep 25 '17 17:09 AlbertoLanaro

I was able to display the stream on windows 7 with the following command: ffplay -fflags nobuffer -f:v mpegts -probesize 8192 udp://@10.5.5.9:8554

The @10.5.5.9 part did the trick. Without it won't work on windows.

dirk68-fu avatar Nov 07 '17 11:11 dirk68-fu

thanks to @dirk68-fu pointer to use @ I can actually see some results now ... but the image is corrupted / glitchy and the terminal shows all these errors:

image

using the exact command: ffplay -fflags nobuffer -f:v mpegts -probesize 8192 udp://@10.5.5.9:8554

[h264 @ 000001757fc8dec0] top block unavailable for requested intra mode -1
[h264 @ 000001757fc8dec0] error while decoding MB 15 0, bytestream 6436
[h264 @ 000001757fc8dec0] concealing 300 DC, 300 AC, 300 MV errors in I frame
[mpegts @ 000001757a05b9c0] Packet corrupt (stream = 0, dts = 1009008).
[mpegts @ 000001757a05b9c0] Packet corrupt (stream = 0, dts = 1036035).
[h264 @ 000001757fc8e7c0] left block unavailable for requested intra4x4 mode -1
[h264 @ 000001757fc8e7c0] error while decoding MB 0 3, bytestream 9904
[h264 @ 000001757fc8e7c0] concealing 289 DC, 289 AC, 289 MV errors in I frame
[mpegts @ 000001757a05b9c0] Packet corrupt (stream = 0, dts = 1117116).
[mpegts @ 000001757a05b9c0] Packet corrupt (stream = 0, dts = 1141140).
[mpegts @ 000001757a05b9c0] Packet corrupt (stream = 0, dts = 1177176).
[h264 @ 000001757a0c7380] mmco: unref short failureq=    0B f=0/5
[h264 @ 000001757a0c7380] illegal short term buffer state detected
[h264 @ 000001757a0c7380] left block unavailable for requested intra4x4 mode -1
[h264 @ 000001757a0c7380] error while decoding MB 0 6, bytestream 1026
[h264 @ 000001757a0c7380] concealing 229 DC, 229 AC, 229 MV errors in I frame
[mpegts @ 000001757a05b9c0] Packet corrupt (stream = 0, dts = 1201200).
[mpegts @ 000001757a05b9c0] Packet corrupt (stream = 0, dts = 1234233).
[h264 @ 000001757fc8e7c0] left block unavailable for requested intra4x4 mode -1
[h264 @ 000001757fc8e7c0] error while decoding MB 0 2, bytestream 8574
[h264 @ 000001757fc8e7c0] concealing 300 DC, 300 AC, 300 MV errors in I frame
[mpegts @ 000001757a05b9c0] Packet corrupt (stream = 0, dts = 1294293).
[mpegts @ 000001757a05b9c0] Packet corrupt (stream = 0, dts = 1321320).
[h264 @ 000001757a0c6c00] top block unavailable for requested intra mode
[h264 @ 000001757a0c6c00] error while decoding MB 17 0, bytestream 1244
[h264 @ 000001757a0c6c00] concealing 300 DC, 300 AC, 300 MV errors in I frame
[mpegts @ 000001757a05b9c0] Packet corrupt (stream = 0, dts = 1330329).
[mpegts @ 000001757a05b9c0] Packet corrupt (stream = 0, dts = 1351350).
[mpegts @ 000001757a05b9c0] Packet corrupt (stream = 0, dts = 1369368).
[h264 @ 000001757a09e740] error while decoding MB 19 12, bytestream -8
[h264 @ 000001757a09e740] concealing 90 DC, 90 AC, 90 MV errors in P frame
[mpegts @ 000001757a05b9c0] Packet corrupt (stream = 0, dts = 1372371).
[h264 @ 000001757fc8dec0] error while decoding MB 15 0, bytestream -10
[h264 @ 000001757fc8dec0] concealing 300 DC, 300 AC, 300 MV errors in I frame
[mpegts @ 000001757a05b9c0] Packet corrupt (stream = 0, dts = 1387386).
[mpegts @ 000001757a05b9c0] Packet corrupt (stream = 0, dts = 1408407).
[mpegts @ 000001757a05b9c0] Packet corrupt (stream = 0, dts = 1426425).
[mpegts @ 000001757a05b9c0] Packet corrupt (stream = 0, dts = 1465464).
[mpegts @ 000001757a05b9c0] Packet corrupt (stream = 0, dts = 1498497).
[h264 @ 000001757fc8dec0] top block unavailable for requested intra mode -1
[h264 @ 000001757fc8dec0] error while decoding MB 16 0, bytestream 7718
[h264 @ 000001757fc8dec0] concealing 300 DC, 300 AC, 300 MV errors in I frame
[h264 @ 000001757fc8e340] error while decoding MB 19 14, bytestream -6
[h264 @ 000001757fc8e340] concealing 50 DC, 50 AC, 50 MV errors in P frame
[mpegts @ 000001757a05b9c0] Packet corrupt (stream = 0, dts = 1507506).
[mpegts @ 000001757a05b9c0] Packet corrupt (stream = 0, dts = 1555554).
[mpegts @ 000001757a05b9c0] Packet corrupt (stream = 0, dts = 1633632).
[h264 @ 000001757a0c6c00] mmco: unref short failure
[h264 @ 000001757a0c6c00] illegal short term buffer state detected
[h264 @ 000001757a0c6c00] error while decoding MB 17 0, bytestream -54
[h264 @ 000001757a0c6c00] concealing 300 DC, 300 AC, 300 MV errors in I frame
[mpegts @ 000001757a05b9c0] Packet corrupt (stream = 0, dts = 1648647).
[mpegts @ 000001757a05b9c0] Packet corrupt (stream = 0, dts = 1759758).
[mpegts @ 000001757a05b9c0] Packet corrupt (stream = 0, dts = 1801800).
[h264 @ 000001757a09e740] cabac decode of qscale diff failed at 1 10
[h264 @ 000001757a09e740] error while decoding MB 1 10, bytestream 6376
[h264 @ 000001757a09e740] concealing 148 DC, 148 AC, 148 MV errors in P frame
[mpegts @ 000001757a05b9c0] Packet corrupt (stream = 0, dts = 1864863).
[h264 @ 000001757fc8dec0] left block unavailable for requested intra4x4 mode -1
[h264 @ 000001757fc8dec0] error while decoding MB 0 7, bytestream 7540
[h264 @ 000001757fc8dec0] concealing 209 DC, 209 AC, 209 MV errors in I frame
[mpegts @ 000001757a05b9c0] Packet corrupt (stream = 0, dts = 1879878).
[mpegts @ 000001757a05b9c0] Packet corrupt (stream = 0, dts = 1921920).
[h264 @ 000001757a0c5d40] error while decoding MB 4 5, bytestream -56
[h264 @ 000001757a0c5d40] concealing 245 DC, 245 AC, 245 MV errors in I frame
[mpegts @ 000001757a05b9c0] Packet corrupt (stream = 0, dts = 1945944).

ahmadnassri avatar Jul 21 '20 06:07 ahmadnassri

@ahmadnassri Did you end up getting this to run smoothly?

I'm currently running a GoPro Hero 5 Session. Followed all the steps and I get a feed that looks exactly like yours. I'm in video mode, 720p in-camera - running only 240p in OBS and 1mbps Can you assist @KonradIT ? I'm a complete noob and very new to Python and FFmpeg - not sure what I'm doing wrong... Is there anyway of me sharing logs or something that might be able to identify the problem?

I'm using Windows 10 (I read somewhere that apparently this can't be used with Windows 10 .. but I think it may have been updated since? Not sure.

Any help would be greatly appreciated. Cheers :D

480p 1mbps feed

tkthesquid7 avatar Jul 25 '20 13:07 tkthesquid7

I have made no further progress unfortunately @tkthesquid7

ahmadnassri avatar Jul 25 '20 13:07 ahmadnassri

I have exactly the same problem with Raspberry Pi on linux. View works fine via GoPro app GoPro Session 4

JulyIghor avatar Jul 28 '20 20:07 JulyIghor