Tag and manage video files
I have lots of video files on my hard drive and I want to manage and sort them using tags. So my question is: What do you think is the best way to do this?
Solution 1:
It is quite common for people to have a good mixture of different video file formats they would like to manage, the problem with this is that often some of these formats are not easy to tag, for instance .flv files, the format I find most easly taggable both from the command line and with gui applications is the .mp4 format with H.264 video and aac audio.
The .mp4 format videos can be tagged with itunes compatible metadata quite easily with mp4tags from mpeg4ip-utils, mp4tags is command line based, a good GUI application that can batch tag these files is Easytag-aac, you can also use the VLC media player to do .mp4 tagging but without the batch feature.
It is not always a good thing to convert one compressed video to another, for instance when one container does not support the codec from another container a simple lossless demux and remuxing will not work the video or audio or both will have to be transcoded which is time consuming and will result in even more loss.
Since there are so many different formats around it may get unweildly to have to convert all your files to one format I believe the best option is to use something that will keep information about the files that can not be tagged or which are not easy to tag in an external database. while still reading the tags of those that can be easily tagged.
For this I would recommend the media player called Banshee. Banshee will read the metadata embedded in the video files much the same way it reads the metadata in audio files. If no metadata is embedded in some videos Just import them into the program then you can enter the necessary information about these videos in the banshee interface, much the same way you do your music, the only thing is that this information will be stored in the Banshee sqlite database, and not the file itself, not a big broblem in some cases.
If banshee is not an option for you for any reason at all and you would like all videos to be tagged I would recommend that you convert the ones that are difficult to tag to the ones that are easy. See below for some tools you can use for tagging different formats.
SUMMARY
TAGGING
FOR MP4
install mpeg4ip-utils this provides mp4tags, a commandline based tagging tool for .mp4 files.
Install Easytag-aac good GUI tool for tagging .mp4 and some other formats. useful when you need to update many files at once
Install VLC media player for a GUI based one at a time metadata editing.
use mp4tags like this:
mp4tags -a "Author Name" -s "The Video Title" -g "The Genre" -A "The Album" "file.mp4"
file.mp4 will be updated with the metadata.
FOR OGG THEORA
Install oggz-tools, provides oggz-comment, this is command line based tool for tagging ogg vorbis and ogg theora files.
use oggz-comment like this:
oggz-comment input.ogv TITLE="The Title" ARTIST="The Artist" ALBUM="The Series" LICENSE="None" DATE="2011" ORGANIZATION="Big Org." LOCATION="Somewhere" COMMENT="This is a test" -o output.ogv
input.ogv is the file to tag, output.ogv is the tagged file.
FOR AVI
Install ffmpeg, commandline based tool for working with audio and video.
use ffmpeg like this to add metadata to some .avi files:
ffmpeg -metadata title="Video Title" -metadata artist="Video Artist" -metadata genre="Video Genre" -metadata comment="Video Comment" -acodec copy -vcodec copy -i "inputfile.avi" new.avi
inputfile.avi is the file to be tagged and new.avi is the tagged file.
Tested with .avi container having; DivX MPEG-4 Version 5, XVID MPEG-4 and Flash Video 1.all with .mp3 audio.
FOR MATROSKA MKV
Install mkvtoolnix,a Set of command-line tools to work with Matroska files
Install mkvtoolnix-gui,a Set of tools to work with Matroska files - GUI frontend
The metadata in the matroska container does not seem to be well understood by some media players.
Read more about mkvmerge and its gui here:
http://www.bunkus.org/videotools/mkvtoolnix/doc/mkvmerge.html
http://www.bunkus.org/videotools/mkvtoolnix/doc/mkvmerge-gui.html
Read more about the matroska official tags specifications:
http://www.matroska.org/technical/specs/tagging/example-video.html
http://www.matroska.org/technical/specs/tagging/index.html
MANAGEMENT
Install banshee Media Management and Playback application. Import tagged files, enter manually the information for files that could not be tagged with the above tools, always remember to backup banshee's database, before you import give your videos good file names so you will not have to change them afterwards. Decide on a good location for your video storage.
If you do not want to use banshee as a media manager my next suggestion would be the VLC media player from VIdeo Lan, do not let the simple interface fool you, this is a very useful media player outside of just playing media, the playlist button is quite misleading, one would believe that all you have there is something to view or create playlists but this brings up a handy tool that can be used as an interface to the open .xspf playlist format, vlc does a fairly good job of using this playlist format as a flat database it creates a file called ml.xspf in ~/.local/share/vlc so you can back this up, the interface to this file once you get used to the tree view nature is quite handy for searching organizing and playing your videos. Ironically the Media library aspect of this interface works much better than the Playlist aspect.
You can right click on an empty area in the media library window to create folders and drag other folders to them, the folders created in the Media Library window will only exist in the .xspf xml file, whenever you import a folder all the subfolder structure will be imported, this is good if you have a folder system that organizes your files already and you want the same structure in your media library, if this is not desired you can drag out any folder and place them under any other folder or in the root of the tree structure, individual folders can also be imported and placed anywhere in the tree.
You can view the Playlist interface by clicking view in the menu and then click the Playlist item.
More on VLC playlist usage here; http://wiki.videolan.org/Documentation:Play_HowTo/Basic_Use/Playlist
All the software recommended are available in the repositories, just search in synaptic or software center.
Solution 2:
You could use a Movie manager or a cataloger.
GCstar (Click To Install)
GCstar is a free open source application for managing your collections. Detailed information on each item can be automatically retrieved from the internet and you can store additional data, such as the location or who you've lent it to. You may also search and filter your collection by many criteria.
Griffith(Click To Install)
Griffith is a media collection manager application. Adding items to the collection is as quick and easy as typing the film title and selecting a supported source. Griffith will then try to fetch all the related information from the Web.
Data Crow
Data Crow is the ultimate media cataloger and media organiser. Always wanted to manage all your collections in one product? You want a product you can customize to your needs? Your search ends here! Using Data Crow allows you to create a huge database containing all your collected items. You can use the excellent online services to retrieve the information instead of typing all the information yourself.
MeD's Movie Manager
MeD's Movie Manager is a simple to use, yet customizable, movie manager. Info is automatically retrieved from IMDb and tv.com. Technical info can also be retrieved from media files like AVI, OGM, MPEG and DVD (ifo). It's written in Java and should therefore run on most desktop systems supporting Java.
Solution 3:
There's a fairly new project called Wwidd, which comes with a cross-platform video tagger. It's available for download, but for Ubuntu installation instructions you'll need to check the readme on its GitHub page.
Once you have it running, it's fairly simple to add and edit tags, even in bulks. I'm managing thousands of videos with it.
Dependencies are: node.js, sqlite3, ffmpeg, VLC (for playback).
Solution 4:
To answer both of your questions I would convert all of your video files to MKV using Handbrake which has a command line version which means you can script the conversion of your files. Within Handbrake you can make the output quality the same as the input but you will be able to use the features of the MKV standard to squeeze the files into a smaller output file. I'm not sure how much compression you will get but its the best you will get without quality reduction.
Once you have converted all of your files you can use one program MKV files creator to add meta data to your video's by using the Header Editor which you can open from the file menu
Edit
MKV Files creator is a GUI for mkvtoolnix which in turn is a combination of smaller programs including: (each of the links opens the man page of that program)
- mkvmerge
- mkvinfo
- mkvextract
- mkvpropedit
- mmg which is the gui