GoPro USB file transfer freezes Opus

Attempting a file transfer instantly freezes Opus. Not just file transfers by the way. I can open the GoPro 11 SD card storage connected via USB to my Win11 laptop, but once I right click on a video file for example it freezes too.

Any action on the files on the GoPro SD card seems to freeze Opus. I just purchased Opus, so this is a bit of a disappointment.

Is there a solution to this? Why is this happening?

Do the same things happen in File Explorer?

Have you tried disabling antivirus?

What happens if you plug the same SD card into a USB reader?

It works perfectly in Explorer.

I have tried disabling antivirus now yes. Didn't resolve it.

Plug the same SD card into a USB reader works fine.

If the SD card works directly, it's possible the GoPro's USB storage implementation has problems with certain buffer sizes or I/O modes, or parallel file access or similar, which Opus is using but File Explorer isn't.

We've seen this with some cheap USB devices but it's surprising with something as big and popular as a GoPro.

At the same time, I don't think we have had any similar reports, so it could still be down to something else.

Could you make some process snapshots while the problem is happening? We can use those to see which API Opus is waiting on, which could reveal something.

Some other things that are worth a try:

Make sure Preferences / Miscellaneous / Advanced [Filesystem]: copy_nonbufferio_threshold is set to 0 (zero). Any other value will mean Opus uses less common I/O modes which some devices don't support.

Right above that is a copy_buffer_size setting. Try changing that to 16 KB, 64 KB and 2 MB to see if the GoPro prefers any of those.

Trying a different USB cable and USB socket (direct to the motherboard is usually best) may also be worth a try. A problem would usually also affect Explorer but it's possible one method of reading the data is overwhelming a USB hub or borderline cable while another isn't, perhaps. I've definitely had some strange experiences with fast USB 3 devices and USB hubs.

In the longer term, we have a change in the pipeline which will make Opus copy things in exactly the same way as File Explorer for simple file-to-file copies, which should alleviate compatibility issues with hardware like this. (But the same problem could affect any program that reads/writes files from the device, as Opus isn't doing anything that unusual. In fact, the way Explorer copies files is the unusual thing, but also the thing that almost everyone tests their devices against.)

1 Like

Ok thanks Leo, for the elaborate reply and suggestions to try and fix it. I will try those things when I have some time again which can take a bit, but I'll get to it sooner or later and report back.

1 Like

I've just looked into this / tried all the above suggestions but the problem still persists.

I've created the 5 crash dump files and sent them to the email address for that.

Hello Leo, did you receive my dump files?

Any update on this issue, what's causing it, and a potential fix?

Looking at the snapshots you sent, the transfer is being done via the MTP protocol, which Windows handles most of the details of (very badly), and it looks like it's hanging, possibly due to trying to access the same device in parallel (which MTP often does not handle properly).

For example, there's a thread trying to get metadata about the files at the same time. Avoiding things like that, or opening any files on the device to view them, while copying from it is advisable.

This FAQ also has other suggestions for MTP related issues:

Toggling mtp_enable to the opposite mode is always worth a try, as it changes how the device is accessed (and the share of what Opus itself handles vs Windows, but Windows always does most of it).

With a camera, assuming it has no other mounting options, putting the SD card in a card reader will give better results in almost all cases, as well as being much faster, since it eliminates MTP entirely and lets you access the files via a normal USB drive. I would do that if MTP is the only option, as MTP in my experience is generally neither fast nor reliable, no matter which software is calling it.

Thanks for your reply.

I just tried mtp_enable set to false. When I double click the GoPro storage in Opus with that set to false or right click to open with Opus, nothing happens...

When I right click and click just "open" though, it opens the GoPro storage with Windows Explorer, which works but Opus thus still isn't working. So I'll just accept that I can't use Opus with my GoPros.

I have a GoPro case around it and it's a pain in the ass to get the SD card out every time, even without a case I don't prefer it. I much rather have it transfer via USB cable in the background (albeit slower) than having to fiddle with SD cards every day which also can be easily lost considering their tiny size.

I hope Opus will add support for GoPros in the future.