V19.10 BETA now available

That’s great to hear! Keep us posted! :smiley:

1 Like

Found another bug:

  1. When trying to do manual proxies like here:

After directing Shotcut on which file to use, audio will play but no video will show because Shotcut will autoselect “none” for Video track in Properties rather than staying on video track 1. This can happen either when you try to go from the bigger file to smaller file or later on when you try to go from the smaller file to bigger file.

Shotcut depends on a valid audio_index and video_index in the MLT XML, and proxy workflow is not yet managed. Your case is failing because your source and proxy media have different index values. If you remove an index, then MLT will automatically select the first audio or video track it finds.

You mean different resolutions? Why doesn’t this issue occur in the video above?

No, I mean different <property name="video_index"> in the XML. The index depends on the order in which streams (aka tracks) appear in a container file: sometimes audio first, sometimes video first. The index is really only needed in the cases of multiple audio or video or disabling audio (audio_index = -1) or video (video_index = -1). Basically, as part of your proxy workflow, you can edit the XML in a text editor to remove those lines if you are confident you are only using the first audio or first video.

But the files don’t have more than one video track. I still don’t understand why it doesn’t happen in the video above. It doesn’t matter if I create a smaller file in Handbrake or Shotcut. After testing this a few times, it doesn’t happen anymore going from the original file to a smaller file but it keeps happening going from the smaller file to the original file.

I am not able to reproduce this problem using my proxy generation scripts that call ffmpeg directly. So it’s looking like an index problem.

What happens if you run MediaInfo on your original and proxy files? Do they have the same stream indexes in the same order? I wonder if the stream order got flipped by whatever process created the proxy.

Just thinking out loud, not advocating this idea at all as I don’t know the side effects…

If an index is not found, would defaulting to the first audio or video track it finds be better than defaulting to None? Discounting album art streams, of course. Or is the MLT XML secretly holding on to the original index value in case the original media comes back, but all we see is ‘None’ in the track selector?

Is the change to Matroska being done for both the Lossless preset and the Alpha preset? There are two Ut Video presets. I pulled the latest beta to verify before asking, but they were both still AVI.

It already does that but in this case the index is not valid for that media type - audio vs video. A change could be made to treat invalid the same as not specified, but that will not properly handle the case of multiple tracks of the same type. In that case, you would get an unexpected result instead of the first. In any case, this is off topic for beta of the next release.

Just to give an update about issue 21, I tested out several other files and this issue didn’t happen with them. It only happened with one particular file I tested with where going from the smaller file to the original one made the video track go to “None”. I don’t know what the reason was but if it happens again with another file I will start a separate thread on it.

Good point on bringing up the Alpha preset! I forgot about that one.

The change is made to the lossless only as of 19.10.14. I kept the alpha preset as AVI to maintain interoperability with other tools since it is RGB and does not need to store additional colorspace and range information.

This is fixed for the next version. It was a regression in v19.09 with a “fix filters inside transition after split.”

  1. The threshold for Mask From File at 0% is not really 0%.

This is a known quirk that will not be fixed for the 19.10 release. The workaround is to use the fact that the state before the filter starts is 0, and you can use filter trimming to determine it.

That makes sense. Good call.