mpv-player / mpv

🎥 Command line video player
https://mpv.io
Other
28.71k stars 2.93k forks source link

Kodi/Mplayer compatible edl support #10686

Open Dnkhatri opened 2 years ago

Dnkhatri commented 2 years ago

Some video apps like mplayer, kodi and now it seems like jellyfin are adding support for edl files as they are introducing intro and outro support. As I use mpv player with jellyfin I am hoping the support for such edl files will be added to mpv as well. And it is adopted by all other video players.

https://kodi.wiki/view/Edit_decision_list

0 - Cut 1 - Mute 2 - Scene Marker (if start and end times are specified, the end time is used) 3 - Commercial Break

Currently the actions above are supported only with sporadic discussions about adding intro, outro and recap as

4 - Intro 5 - Outro 6 - Recap

I hope this can be adopted by all video players so that in the future we can share edl files like we share subtitle files

xM8WVqaG commented 2 years ago

mpv already has an EDL format with a slightly different schema to mplayer's: https://github.com/mpv-player/mpv/blob/master/DOCS/edl-mpv.rst

The mpv EDL schema can also be passed to mpv as a command line argument.

I've used mpv EDLs before with Kodi (by configuring mpv as an external player) and am currently using them now with Jellyfin. It would probably be better to get upstream to use mpv's native EDL schema. Especially if they're already using mpv as their default player.

hendursaga commented 2 years ago

I could be reading the spec wrong, but it looks like they're doing two different things. Whereas MPlayer's EDL files show where to skip/mute, MPV show where to "stitch" from. While I could create a simple script to port some functionality over, it's not immediately obvious how I could, say, mute or bleep out a section of audio but keep the video intact.

This is basically the only reason I'm still having to use MPlayer.

backcountrymountains commented 1 year ago

Hey, @xM8WVqaG

Can you elaborate on how you are using EDL files with mpv and Jellyfin? How are you creating the EDL files? How are you getting Jellyfin to open the files in MPV? Are you using the Jellyfin MPV shim?

Thanks.

xM8WVqaG commented 1 year ago

Sure, although the tl;dr is hacks.

How are you creating the EDL files?

I use the plugin mpv-create-edl to manually build EDL files. This plugin writes chapters with a generic title that I manually edit to be more specific. If I want to drop a chapter I just comment it out.

How are you getting Jellyfin to open the files in MPV?

I forked the TV resolver to also support movies and organising everything by "universe" on the filesystem. This means I can create a directory called stargate containing four TV shows and three films and they'll all show up in release order without any extra config. As part of that resolver, I added .edl as a Video File Extension.

I am not sure if there is a better way to do this now, I know they improved how sets work but I didn't try it. It really just needs support for adding .edl to the Video File Extension list. My version is two years out of date, but it only has local network access so :shrug:.

Are you using the Jellyfin MPV shim?

Yes, I have the shim acting as a dumb proxy to an external mpv that is more up to date.

hendursaga commented 11 months ago

An update: I no longer use, or need to use, MPlayer, although built-in support would be nice. I use python-mpv with a custom script I wrote. I am considering publishing at least parts of my code, but we shall see.