Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Minimal editor #618

Merged
merged 27 commits into from
May 14, 2020
Merged

Conversation

JulianKniephoff
Copy link
Member

This pull requests introduces a minimal trimming interface into Opencast Studio's review step.

Once you enter the review step, you will see new unified player controls, that should look (more or less) the same on all browsers, but more importantly can control two video streams at once, should you have chosen to record both, your screen and your webcam.

Within these controls, you will also find two entirely new buttons. These are used to set the start and end time of the final result of your production to the current playback time, visible on the custom scrubber or below the play button. Just let the video play until you see all the usual setup like switching windows is done, or jump directly to the right place if you roughly know where in the video it is, and hit the "Set start" button, for example. Everything before that time won't show up in the video produced in the end. And similarly for the "Set end" button.

This feature is currently implemented by Studio submitting a specially prepared SMIL-file to Opencast, along with the tracks, ACLs and metadata catalogs. If you didn't set any start or end time (or removed it again after setting which is also possible, of course), no SMIL will be sent. Note that for this to work, the workflow you are using to upload has to support it. opencast/opencast#1578 adds this to the corresponding standard workflow.

Do also note, though, that this means that we can't currently offer the trimmed versions of the videos for download; a corresponding warning has been added to the up-/download step. These things are subject to change in the near future, but are currently blocked at least by #517.

JulianKniephoff and others added 27 commits May 13, 2020 14:24
`useRef` gives you the same ref every render,
instead of creating a new one.
`0` is `false`-y, so the condition in question here
never fired when the last event origin was the first
of the two players.
This way, we can also appropriately hide the video controls
until everything is ready.
This does two things (I know ...):

- Instead of just waiting for the duration
  to be set to `Number.MAX_VALUE`,
  we now also wait for it to be reset back to 0.
- We actually show a spinner until all durations are loaded.
The downloaded video is not cut.
This leads to weird behavior in certain edge cases,
because `0` is `false`-y.
You should never make a cut there; Studio can handle only one marker.
Plus, them being enabled in these positions might suggest a different
scheme of interaction and thus might be confusing.
@LukasKalbertodt
Copy link
Member

We let some others test this already with a general agreement that this works (mostly) and is what we want. We are already late for 8.4. More extensive bug hunting will be done in the 8.4 testing phase.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants