Re: question for the Arista/Transmageddon groups



On 09/29/2010 12:01 AM, Jeff Cobb wrote:
Greetings; I have downloaded the source for Transmageddon but not looked
at it yet (multitasking heavily tonight on a deadline) but noticed that
Transmageddon and Arista are two overlapping projects, are open source
and at least one is written in Python. I also read on part of the
Transmageddon site that one of the intended directions will be to rip
DVDs in addition to the existing file imports. Also I saw something
about how they shared lots of source with Arista and that they are
pushing a profile download service (as opposed to having phone-book
sized transcoding profile libraries). Now all of that would seem to have
a certain amount of overlap with my open-source project which is more
narrowly-defined but if people were interested enough there is a key
portion of my project that I could rewrite to be shared with these two
projects.  If no one wants it or shows interest I will be on my way but
I think this is an area we could help each other. In short, my app
started life as a wrapper/abstraction layer for different rip engines
(ogmrip, HandBrake, mencoder, etc) and while it does do this well
enough, the part you might be interested in the track lookup service I
built. What this does is look at a DVD when inserted, uses libdvdread to
create an MD5 hash on the disc, sends a request to my back-end server in
XML-RPC and if found, will feed the right information to the ripper to
properly name the tracks. Yes, it is a lot like CDDB only it covers more
metadata about DVDs/tracks like track type (such as movie, show (like an
hour TV show), cartoon/animated (same thing only about Simpsons-size) or
extra feature. The ripper portion of my system then uses this
information to provide custom rip information so (for example) the main
feature of a disc can be automatically ripped with a different profile
than say the extra features on that disc (or the special features can be
omitted entirely) or animation or anime can be ripped with different
quality settings than a movie. You get the idea. The part of all this
that might appeal to these two projects (and I would be delighted to
help out on) is the python plugin code to do the hash and track lookup.
There are associated records for things like reviews, IMDB or other
internet site references as well but these are not used all that much.
This plugin/python code comes in really handy under two key situations:
1. You hit what I call the '99 track' trick. Seen more recently, the
main feature or several real episodes are nested within 95 or so fake
tracks which invariably wind up being the correct track with the
chapters shuffled (take the latest CG Tinkerbell flick for example).
Simply knowing which tracks are "real" can be of immense help
2. Ripping TV show discs. Depending on episode-length, there might be
3-9 episodes per disc. Under the existing methods of ripping sometimes
the episodes are listed and sometimes not. Worse, most of the time the
season-air order is not listed, calling for a rip and then grepping the
web for an episode guide.  With my system it can turn what would
normally appear as track_01.avi, track_02.avi, etc into something like:
jeff minotaur:~/dvdmetabase/rips$ tree ./mx5-0n-nw2.1_des/
./mx5-0n-nw2.1_des/
|-- 69_storm_front_part_I.mp4
|-- 70_storm_front_part_II.mp4
|-- 71_jubilees_fairytale_theater.mp4
|-- 72_the_fifth_horseman.mp4
|-- 73_old_soldiers.mp4
|-- 74_descent.mp4
|-- 75_hidden_agendas.mp4
`-- 76_graduation_day.mp4

0 directories, 8 files
jeff minotaur:~/dvdmetabase/rips$
Thus if you want to say rip a disc of Lost for your cellphone/iPod
touch, etc, you can run my system and you will get real track/episodes
by just inserting the disc and saying "go".

As for me, I have had a few requests for a GUI plus I want to
expand/enhance my support for (more) open source rip-engines. Since
Transmageddon and Arista (testing that out in a minute) both use
different but also great open source engines, this would seem to be a
match made in heaven.

With that in mind I have three questions, starting with the
most-important one:
1. Is there any interest in my porting this to something these two
projects can use?
2. If so, do they both use a plugin system and if so:
3. Do they use a common plugin framework?

I'm definitely interested in such functionality as the author of Arista. I get a lot of bugs about ripping the wrong titles on DVDs and use some ridiculous code to try and get all the titles and guess which one to use.

Arista doesn't have a plugin framework per-se, but you could easily fork it on github and add the feature and I will merge it into the main development repo. If something is a useful feature I don't mind adding it to the core codebase.

Just so everyone is on the same page, both Arista and Transmageddon:

 * Are written in python
 * Use GStreamer as a backend
 * Shared a lot of stuff initially but have diverged significantly
 * Are friendly to patches

For more info on Arista:

 * http://www.transcoder.org/
 * http://github.com/danielgtaylor/arista#readme

FWIW my project is here:
http://jbcobb.net/?page_id=28
There is a link at the bottom of the page. Caveat Compilor: I am
rewriting this now to be more modular, my description of it stinks for a
number of reasons and finally I am cleaning up the code because it
started to be one tool and morphed over the years to what it is today.
Finally I am open to rewriting the RPC stuff to another type if it makes
sense because while what is there works (been online serving lookups for
years with zero downtime) it probably would not scale well if this takes
off (uses nothing but Python and SQLite for the back-end) so a more
robust server portion would not be a bad thing ;)

Take care,
--
Daniel G. Taylor
http://programmer-art.org/


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]