8/25/2021
11/25/2020
Virtual Media File or Video Metadata
FAQs
How can I embed chapters metadata into media file? Because sometimes I have a big media file and I want that whenever I want, I can go to specific segment of that media file.
- Yes! Using ffmpeg
Is There any way to create a config file to play different segment of videos from multiple files? This can be useful when you have list of media files and you want to create playlist for a single topic without merging these media files together.
- Yes! Using EDL file.
What is EDL?
EDL files basically concatenate ranges of video/audio from multiple source files into a single continuous virtual file.
Each such range is called a segment, and consists of source file, source offset, and segment length.
Example File
# mpv EDL v0
001.mp4, 200, 20,title=First Chapter
002.mp4, 100, 30,title=Second Chapter
003.mp4, 220, 100,title=Third Chapter
Note that You should save this file with file line endings from the Windows default
CRLF
to *nix-likeLF
only,
Usage
You can play this edl file directly by mpv player
mpv demo.edl
You can also save your virtual media file to disk (by encoding)
mpv demo.edl -o demo.mp4
Useful Shortcuts
[ and ]
- Decrease/increase current playback speed by 10%.
BACKSPACE
- Reset playback speed to normal.
T (Shift + t)
- Toggle stay-on-top (see also
--ontop
).
- Toggle stay-on-top (see also
PGUP and PGDWN key
- Seek to the beginning of the previous/next chapter.
Alt + and Alt -
Combining
Alt
with the+
or-
keys changes video zoom.Alt+LEFT, Alt+RIGHT, Alt+UP, Alt+DOWN
- Move the video rectangle (panning).
Alt+BACKSPACE
- Reset the pan/zoom settings.
Ctrl + h
- Toggle hardware video decoding on/off.
using ffmpeg
to add Chapters
You can use ffmpeg
command line tool to add chapters into media file.
Extract metadata from media file
ffmpeg -i 001.mp4 -f ffmetadata meta.txt
Format of FFMETADATA file
;FFMETADATA1
major_brand=isom
minor_version=512
compatible_brands=isomiso2avc1mp41
encoder=Lavf58.45.100
[CHAPTER]
TIMEBASE=1/1000
START=0
END=60000
title=chapter \#1
[CHAPTER]
TIMEBASE=1/1000
START=60000
END=120000
title=chapter \#2
[CHAPTER]
TIMEBASE=1/1000
START=120000
END=500000
title=chapter \#3
Inserting metadata into media file
ffmpeg -i 001.mp4 -f ffmetadata meta.txt -map_metadata 1 -codec copy 001_conv.mp4
Sources
https://github.com/mpv-player/mpv/blob/master/DOCS/edl-mpv.rst
https://github.com/mpv-player/mpv/issues/6479
https://mpv.io/manual/master/#interactive-control