An option in EDL to explicitly define the track layout of each file entry using track IDs
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 37k
- Forks
- 3.5k
- Avg merge
- 1d 10h
- Merged PRs (30d)
- 22
Description
A problem arose when I tried to play an edl which joined 2 videos and replacing the soundtrack:
# mpv EDL v0
start.mkv
end.mp4
!new_stream
music.flac,flags=default
However there's a silent audio track on start.mkv and end.mkv, and I guess the default track layout is that of the first input file, therefore the new audio stream (music.flac) was made audio track 2. I figured having 'flags=default' would make it so audio track 2 was selected by default, but it did not (for some reason I'm not aware of).
The only way around this was to remux start.mkv without the audio track.
A better way around this however would be to have a way to define what tracks are used from each file.
I propose we could use the 'layout' parameter to define precisely which track IDs you want included from each file, eg:
# mpv EDL v0
start.mkv,layout=0
end.mp4,layout=0
!new_stream
music.flac
This would select only the video stream from start.mkv and end.mp4, and the audio stream from main.flac would become the only (and default) audio track.
(Assuming the first file entry defines the layout, then specifying the layout for end.mp4 would not be necessary, but I'm not sure if the layout is defined by the first resulting concatenation or the first file entry, but either way this would result in the same output - a media with 1 video track and 1 audio track)
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the EDL v0 examples in the issue and trace how file entries, layout, and track IDs are currently interpreted. Check how concatenated inputs and !new_stream are handled, then define completion as selecting only the requested tracks while preserving the intended default audio track. No source file or test is named, so locating the parser and adding coverage will require repository familiarity.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- cli
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100