Why does Vegas choke on GoPro 1080p60 files

NormanPCN wrote on 12/19/2013, 2:44 PM
I have a GoPro Hero3 Black. Putting 1080p60 files on the timeline and playing is simply awful. Very low frame rate. Okay high bitrate High profile AVC files are hard right? Well no so fast. I downloaded a Panasonic GH3 1080p60 clip and it plays just fine. It is actually 50% higher bitrate than the GoPro.

Both are listed as High profile level 4.2 using CABAC encoding. What could the GoPro be doing that causes Vegas to choke? Deblocking filter enabled? Mediainfo shows the GoPro is using a canned IPB sequence and the GH3 does not. Can that matter?

The GH3 plays at full frame rate, Preview Auto (which happens to be half).
The GoPro starts at about half frame rate but slowly deteriorates to a few frames per second as it continues playing. That has nothing to do with file position. It always starts about half and deteriorates.

Since the GH3 generates a MOV file I used Avidemux to mux the video into an MP4 file to get quicktime out of the picture in comparing GoPro to GH3. The video stream was simply copied to the MP4, not re-encoded.

Using Media player classic, either file plays just fine at a similar CPU percentage. Vegas seriously dislikes GoPro files.

A lot of GoPro's out there and we action types like the higher frame rates.

Anyone know of a video stream analysis tool?

If you are interested in investigating.
Here is a link, 270MB, with a zip file containing a GoPro and GH3 1080p60 clip and a VEG file. No effects, project matches source properties.
https://dl.dropboxusercontent.com/u/51868591/1080p60%20test.zip

edit: Updated files. Recorded new GoPro file as some did not like that avidemux was used. VEG includes a clip for an XAVC-S media. You can render this yourself from the GoPro clip. Saves download size.

Comments

john_dennis wrote on 12/19/2013, 4:39 PM
I can't speak for the why but I can add some information to the how part of the question. I placed the GoPro video on the same timeline after the GH 3 video so I could use the Windows 8.1 Performance Monitor to graph CPU utilization in relation to how the video plays on the timeline.

Vegas Pro 12-726 makes pretty good use of the CPUs when it plays the GH 3 video, but appears not to be trying very hard when playing the GoPro video.

Picture here.

GPU acceleration is off as it is non-existent on this machine.
NormanPCN wrote on 12/19/2013, 5:03 PM
Thanks for looking at this.

I also noticed the lower CPU utilization on the GoPro. It is still the same decoder on both and something different in the GoPro stream is choking the Vegas decoder.

I doubt anyone but a Vegas developer can answer *exactly* why. We know a couple of SCS types are here and maybe this post will spur someone to spend a little time investigating and maybe something can be done. Posting to SCS support is worthless.

Other decoders in players/NLEs do not seem to have a problem. Handling GoPro files well is probably a good marketing decision.
JohnnyRoy wrote on 12/19/2013, 5:04 PM
> "If you are interested in investigating."

Confirmed your findings. :(

Sony Support needs to download the ZIP file because something is seriously wrong with Vegas Pro 12.0 because Vegas Pro 11.0 does not exhibit this behavior. I just experienced the same thing that you did with Vegas Pro 12.0. The GH3 plays a full speed on Best (Full) and the GoPro stutters along at maybe 6 fps!!!

MediaInfo only shows 1 additional parameter in the GoPro file and that's:
Format settings, GOP                     : M=1, N=15
But other than that the specs on the files look identical.

I dropped the GoPro file into Vegas Pro 11.0, Premiere Pro, and FCP X, and it plays as smooth a silk on all of them. Seems to be Vegas Pro 12.0 issue.

~jr
NormanPCN wrote on 12/19/2013, 5:26 PM
I dropped the GoPro file into Vegas Pro 11.0, Premiere Pro, and FCP X, and it plays as smooth a silk on all of them. Seems to be Vegas Pro 12.0 issue.


Wow, thanks jr for testing the other applications.

The problem probably still exists for 30p files and such. Same encoding mechanism. It is just they don;t stress the system as much as 1080p60.

>Sony Support needs to download the ZIP

I have tried that with some projects showing bugs or a MOV file importing badly. They would never try downloading a file, but would still say, "cannot reproduce". Another answer was, we cannot download because we are behind a firewall.
johnmeyer wrote on 12/19/2013, 5:48 PM
I got full 59.94 fps with the GoPro on Vegas 10 32-bit, under Windows XP Pro 32-bit (no GPU). I even sustained that 59.94 frame rate, with Best Full preview quality, when I put both Color Corrector and Levels fX on the event. I am running a three-year-old Intel i7 based computer with 3.2 GHz clock rate.

The audio from the GH3 was only half the length of the video, and was all "chopped up" when played back. However, I got the same thing when playing back in both VLC and Windows Media Player, so I guess that is just how the GH3 works.

I don't own Vegas 12 (and have no intention of getting it), so I can't verify the problem on that version.
NormanPCN wrote on 12/19/2013, 6:19 PM
The audio from the GH3 was only half the length of the video, and was all "chopped up" when played back


I wanted the GoPro and GH3 file in the same container. In this case MP4. I did not want Quicktime in the picture.

The audio problem is a bug in Avidemux. It does not support copying PCM into an MP4 file so the audio was re-encoded. Its decoder/encoder trashed the audio. I should have just re-muxed the video without any audio since I was going to delete the audio track anyway. Again, video was NOT re-encoded.

For a comparison I did not want anything but the video streams alone being decoded.

I also used Avidemux to trim the GoPro sample clip down to 30 seconds. Nothing was re-encoded. Just trimmed and re-muxed to get the file size down. Avidemux mode was "copy" for both video and audio.
john_dennis wrote on 12/19/2013, 6:34 PM
To be a fair test, (a.k.a. one that would hold up in front a crusty old judge) we really need media directly from each camera.
NormanPCN wrote on 12/19/2013, 7:30 PM
One can make the argument, but if one is educated on the particulars, that the AVC stream is not altered then we should accept that.

In this case the GH3 generated Quicktime files and quicktime is a separate decoder from the Vegas AVC decoder. Both video streams must run through the same decoder otherwise what are you really comparing?

Think ZIP file. You can put something in a ZIP container and take it out unaltered. The AVC stream in a MOV, MP4 or MXF file can be extracted unaltered. ZIP is a container. MOV/MP4/MXF are just containers.

skeeter123 wrote on 12/19/2013, 8:00 PM
Interesting,

1) I can't open the zip folder...7-zip wants a password??

Edit: Re-DL'd....extracted ok...

2) I use GoPro Hero3 Black 1080p files a lot on VP 12. Full rate playback no problem on laptop and desktop. When I stabilize with ProDrenalin, (200Mbps+) then I get some reduced frame rate issues..

I do not get full rate playback with GPU off..

...
johnmeyer wrote on 12/19/2013, 8:09 PM
One can make the argument, but if one is educated on the particulars, that the AVC stream is not altered then we should accept that.I think John was concerned about the possibility that information in the header is probably not updated. With some of these complex video formats, bad things can sometimes happen when they are cut or modified because there are, apparently, lots of pointers and other stuff that refer forward and backward in the video file that may not be valid once the file is truncated.

As for the Zip file needing a password, Winzip didn't ask for anything.

skeeter says he can play his own GoPro files on V12 with full frame rate. This reminds me of one thing I didn't mention. I actually tried to play the GoPro files on Vegas 8, but I got a dialog that say I don't have QuickTime installed on this computer. That is correct: I don't have QuickTime installed. However, this reminds me that Vegas is very, very strange in when it decides to use QuickTime to decode these files, and when it uses its own internal decoder. I suggest that Norman's problem may (emphasize: may) be yet another QuickTime issue.

Do you have QuickTime installed and, if so, what is the version? Does skeeter have QuickTime installed and what is his version?

skeeter123 wrote on 12/19/2013, 8:50 PM
Skeeter does not have QT installed at all...Win 8.1 box.
Skeeter does have QT on the laptop. Win7.
Skeeter intialy had a bad download...files opened ok.....

Both are 64 bit. Desktop has AMD R9 290, Laptop Nvidea GTX 675M...

john_dennis wrote on 12/19/2013, 9:00 PM
System # 1

Vegas Pro 9.0e ...... both files play <10 fps

Vegas Pro 10.0e ..... both files play 59.94 fps

Vegas Pro 11-701 .. GH3 = 40-59.94 fps GoPro = 59.94 fps

Vegas Pro 12-770 .. GH3 ~40 fps GoPro declines to 1.7 fps

My personal threshold for suspecting a bug is different than developers that I've worked with over my life time.

If I walk into the kitchen from the barn and the kitchen begins to smell like horseshit, I don't criticize my wife for what she's cooking. Some people might.
NormanPCN wrote on 12/19/2013, 9:17 PM
I have QT installed. 7.7.4. I uninstalled QT and everything performs the same as before.

Maybe previous Vegas used QT for MP4 files, but from my analysis it no longer does. Vegas uses its own internal stuff. QT and MP4 files are easily distinguished from their file headers. Rename a QT file to MP4 and Vegas still uses QT.

I also looked at the file stream a bit.
GoPro does not have B frames. IPPPP...I sequence
GH3 has B frames. IBBPBBP...I sequence.
NormanPCN wrote on 12/19/2013, 10:06 PM
Another interesting behavior.

Put both the GH3 and the GoPro on the same track. Now click say 3/4 inside one of the clips which positions the cursor. Now click 3/4 inside the other clip. Note the time difference between clicking in the GoPro and the GH3. A cursor position in the GH3 is nearly instant on my machine and the GoPro has a visible delay.

This is consistent with what we have reported. Vegas needs to decode up to the cursor position for the preview window. They do not have to do a full decode. They only need to get to an approximate time position and then decode as necessary for that position. Basically starting from the previous IDR frame to the desired spot.
johnmeyer wrote on 12/19/2013, 10:07 PM
Maybe previous Vegas used QT for MP4 files ...I have found that it is more complicated than that.

It is clear that later versions of Vegas can play some MP4 files without QuickTime installed.

The key word in that last sentence is some

People have sent me many MP4/AVC files that will not open on my main computer in Vegas 10 which, as I said in my previous email, does not have QuickTime installed, and never has (uninstalling it, BTW, may not completely remove it). However, I can take those same files downstairs to my ancient (10-year-old) laptop running Vegas 7 and I can play them. This laptop does have QuickTime installed.

My conclusion: the internal decoder in Vegas is finicky (technical term) as to what flavors of MP4 it will play and if it doesn't know what to do, it hands over the chores to QuickTime.
What is not clear at all is what causes this handoff and what circumstances cause Vegas to send the file to QuickTime, if it is there.

If someone from Sony would like to chime in, I think it would be very helpful at this point ...


musicvid10 wrote on 12/19/2013, 10:58 PM
Free GoPro Studio Cineform files working here.
NormanPCN wrote on 12/19/2013, 11:23 PM
My conclusion: the internal decoder in Vegas is finicky (technical term) as to what flavors of MP4 it will play and if it doesn't know what to do


You can tell what Vegas will use to open. Right click the media in the project media window and select properties. Go to the general tab and to the bottom of that info. Look at the plug-in listed. This is the plug-in Vegas uses to read and decode the file.

compound plug is used for MP4 files. This plug-in can handle AVC and Mpeg-2 video streams.

Interestingly Vegas recognizes Quicktime files with AVC video and uses compoundplug for that as well instead of going through Quicktime (qt7plug). For example a DNxHD MOV file lists qt7plug.

They probably do this to avoid QT support nightmares and a lot of digicams and DSLRs generate AVC MOV files. No quicktime necessary to support those video files.

Bad NEWS. compoundplug is written by Mainconcept. This means there is likely nothing Sony can do to fix/improve the AVC decode. We will get a stonewall just like with the Mainconcept AVC OpenCL AMD graphics core next GPU problem.
NormanPCN wrote on 12/19/2013, 11:40 PM
Free GoPro Studio Cineform files working here.


An valid option and a good codec. Those files get BIG. The GoPro file is 30Mbps and the Cineform converts to 327Mbps. That's a 10.9x increase. A 3GB file grows to 32GB. Of course I can trim out and convert only the interesting parts to edit with. Filming MTB tends to give very long clips. The one I trimmed the first 30 seconds for those whole thread was 16 minutes long.

I have encoded the GoPro file to XAVC-S and that plays fine here. 68Mbps.
wwjd wrote on 12/24/2013, 10:41 AM
so, what is the solution here? Is SONY fixing something?

Why does VP11 play things better than VP12? Smells like a bug to me
NormanPCN wrote on 12/24/2013, 3:17 PM
The solution is to transcode the GoPro 1080p60 file into something else like Mainconcept AVC 30Mbps, XAVC-S (~60Mbps) or something else like proxy. Or buy and overclock the fastest CPU you can get to try and make up for the issues the VP12 decoder has.

The GoPro H3 Black is a pretty important camera IMO in the marketplace. Sony should make sure they handle the files within reason and apparently everything else BUT VP12 does. VP11 is something for Sony to look at in this regard.

The AVC decoder in VP12 is written by Mainconcept. At least their copyrights are in the DLLs. They probably "optimized" their decoder algorithm and it probably improved some or most things but that change does not like what is going on in GoPro Hero3 Black files, in a very big way. I don't have VP11 so I cannot look at the decoder DLLs to see it that was also written by Mainconcept but I am assuming it is. Sony seems very tied into Mainconcept on the decoder/encoder side of things.
wwjd wrote on 12/24/2013, 9:22 PM
doesn't like the new BlackMagic 4K camera files either. But Sony doesn't have to worry about that, since people using those camera will be using real software. ;)
NormanPCN wrote on 1/10/2014, 5:42 PM
I have upgraded my motherboard in my PC and now have a 4770k CPU. Even with all this extra CPU power Vegas 12 still has problems with the GoPro Hero3 Black 1080p60 files.

Transcoding to other files, including higher bitrate AVC, is a workaround, but one can hope that Sony can point out the decoder weakness to Mainconcept so it can possibly be fixed.

After all JonnyRoy tested VP11 and others and they are fine so it is not something inhertly hard about the Hero3 Black files.
wwjd wrote on 3/12/2014, 10:27 PM
Now *I* have a gopro that plays back HORRIBLE inside Vegas, but FLAWLESSLY in VLC - even up to 2.7k protune cam-raw files.

Any solutions for GoPro OTHER THAN converting every file to a 5x intermediary?

gonna try Pro 11 because I read that might work better than 12...
... cuz THAT makes sense. pffff :P
John_Cline wrote on 3/13/2014, 1:44 AM
I have just started using GoPro Hero3+ Black Protune 1080-60p files and I, too, am seeing the exact same behavior; VP11 = full frame rate, VP12 = 5-6 fps. Curiously, Vegas 12 has handled 1080-60p files from other cameras just fine.

I agree that the GoPro camera is popular enough that it is imperative that Vegas handles its files correctly.