==== Matroska ===
* [[mkclean]]
* [[mkvmerge]]
Matroska is my favorite container :D
* [[https://trac.bunkus.org/wiki/FAQ%3AImprovingPlaybackCompatibilityWithPlayers|Options for improving playback on players that don't implement the full Matroska specification]] (from mkvtoolnix)
=== archives: Making a file with chapters ===
Unlike OGM, MKV can import an MPEG2 vob, if you don't want to
rip/re-encode.
mkvmerge --chapters -o movie.mkv dvd.vob
=== archives: Metadata in mplayer ===
**Notes:** Now I *know* some of this is outdated because there have been patches sent in to MPlayer after I wrote this, that I've used. It's helpful as a point of reference though.
Metadata in mplayer
get_meta_album
Print out the 'Album' metadata of the current file.
get_meta_artist
Print out the 'Artist' metadata of the current file.
get_meta_comment
Print out the 'Comment' metadata of the current file.
get_meta_genre *
Print out the 'Genre' metadata of the current file.
get_meta_title
Print out the 'Title' metadata of the current file.
get_meta_track
Print out the 'Track Number' metadata of the current file.
get_meta_year
Print out the 'Year' metadata of the current file.
osd_show_property_text "${metadata/title}"
meta_artist: ARTIST
meta_comment: COMMENT
meta_genre: GENRE
meta_track: PART_NUMBER
meta_year: DATE_RELEASE
libavformat/matroskadec.c
(1156)
av_metadata_set(&s->metadata, "title", matroska->title);
av_metadata_set is in metadata.c
libmpdemux/demux_lavf.c
if(avfc->title [0]) demux_info_add(demuxer, "title" , avfc->title );
if(avfc->author [0]) demux_info_add(demuxer, "author" , avfc->author );
if(avfc->copyright[0]) demux_info_add(demuxer, "copyright", avfc->copyright);
if(avfc->comment [0]) demux_info_add(demuxer, "comments" , avfc->comment );
if(avfc->album [0]) demux_info_add(demuxer, "album" , avfc->album );
// if(avfc->year ) demux_info_add(demuxer, "year" , avfc->year );
// if(avfc->track ) demux_info_add(demuxer, "track" , avfc->track );
if(avfc->genre [0]) demux_info_add(demuxer, "genre" , avfc->genre );
libavformat/metadata_compat.c
compat_tab[] = {
{ "title", SIZE_OFFSET(title) },
{ "author", SIZE_OFFSET(author) },
{ "copyright", SIZE_OFFSET(copyright) },
{ "comment", SIZE_OFFSET(comment) },
{ "album", SIZE_OFFSET(album) },
{ "year", SIZE_OFFSET(year) },
{ "track", SIZE_OFFSET(track) },
{ "genre", SIZE_OFFSET(genre) },
{ "artist", SIZE_OFFSET(author) },
{ "creator", SIZE_OFFSET(author) },
{ "written_by", SIZE_OFFSET(author) },
{ "lead_performer", SIZE_OFFSET(author) },
{ "description", SIZE_OFFSET(comment) },
{ "albumtitle", SIZE_OFFSET(album) },
{ "date_written", SIZE_OFFSET(year) },
{ "date_released", SIZE_OFFSET(year) },
{ "tracknumber", SIZE_OFFSET(track) },
{ "part_number", SIZE_OFFSET(track) },
};
Looks like these are the only ones actually supported:
FILL_METADATA_STR(ctx, title);
FILL_METADATA_STR(ctx, author);
FILL_METADATA_STR(ctx, copyright);
FILL_METADATA_STR(ctx, comment);
FILL_METADATA_STR(ctx, album);
FILL_METADATA_INT(ctx, year);
FILL_METADATA_INT(ctx, track);
FILL_METADATA_STR(ctx, genre);