Hi,

august wrote:

>>> container doesn't ever seem to be compatible with Macs.  I just made a
>>> quicktime (with cinelerra) with MJPEG and 16bit twos pcm inside...and it
>>> cannot be read by the f'ing quicktime player of a mac.  
>> With libquicktime "Jpeg-Photo" and "mjpa" should work.
>> libquicktime is used by some professional studios and they use it to create
>> files, which are later read by FinalCut Pro.
> 
> that's what I thought.   But, I guess I was using cinelerra and its
> quicktime4linux version.  In that case, it didn't work according to the
> mac guy I sent it to.   Bugger. 

quicktime4linux is very clean from the overall structure but extremely
weird in some nasty details.

> I will try with gmerlin's encoder next
> time (if they do produce different files).

If you use libquicktime it should be better.
When I made some movies with cinelerra I had the following toolchain:

Raw DV -> gmerlin-transcoder -> QT/JPEG-photo/TWOS -> cinelerra -> 
QT/JPEG-photo/TWOS ->
gmerlin-transcoder -> MPEG-2/DVD

One problem was that cinelerra ignored the pixel aspect ratio of my files.
So the video was edited slightly squeezed, but in the final transcoding step 
with
gmerlin-transcoder I could repair that.

If I make mp4/AAC/H.264 with libquicktime, I can play them with
Apple Quicktime, vlc and upload them to Vimeo. My version of Apple Quicktime
(under wine) assumes square pixels though.

>> As I already said, I plan to add encoding presets in the next development 
>> cycle.
>> Then people can choose something like "Divx AVI" or "MP4/AAC/H.264".
>> And of course when figuring out the presets one should make some 
>> compatibility
>> tests.
> 
> It would be cool to have "strict"  supra-setting that would only show
> the codec combos that are known to work.   

Impossible because the core knows neither of containers nor of codecs.

> But, that only prints out on stderr on the command line. 

Not necessarily. In my GUI apps these messages show up in the log window.

You can catch the warning messages in your program and ask the user if she
wants to proceed anyway.

> Many users
> don't even know what that is.  How should an application developer
> notify her user that the container-codec combination is not allowed?

It can notify if a warning occurred during encoder initialization, that's
all. If that's because of invalid codecs or something else must be
irrelevant, because encoding can fail for other reasons as well.

Also there are problems, I cannot catch at all. E.g. there are some illegal
combinations of H.264 settings. bg_encoder_start() will fail then, but
there is no generic way to predict it.

> yes, but that will also limit you to one single stream, correct?  

No.

> If you
> want to stream two parallel videos, what do you do then?  

Make two encoders. You make as many as fit into your RAM.

> Or, if you
> want to encode in two different formats and write them to disk using the
> same media input, one would have to know how to manipulate the config
> and plugin registry, correct?

Yes.

I see that manipulating the config section is not trivial for 3rd party
apps. I never had the problem because I programmed the config registry
together with the gtk widgets. Actually the config system was the first
module I wrote for libgmerlin, because all other modules configured with
it.

An important point is that the config system has *no* idea of what the
parameters actually mean, if they are codecs or whatever. It's my
general strategy that one module knows as little as possible about the
others. All communication works through simple and *generic* interfaces.

Advantage is that modules can be combined almost arbitrarily (IMO
libgmerlin can be compared to a huge bunch of Lego bricks). Also
firing up a configuration dialog is a few lines in C. And it doesn't
matter if I configure a bg_encoder_t or a filter chain or GUI colors.
Once a parameter setting mechanism is in place, things become extremely
simple.

Disadvantage is, that e.g. my encoder has no way to generically set a
"codec", "container", "bitrate" etc. The encoder configuration just has a
nested structure of parameters, whose values are in a nested structure
of bg_cfg_section_t's.

I would really like to make the stuff easier to use and I'm sure that
presets are a first step for this. But that won't happen before the
release is out, and for releasing I need to make sure that no serious
bugs are left. So my priority is now to fix the remaining
problems in encoding plugins.

Burkhard

------------------------------------------------------------------------------
SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
http://p.sf.net/sfu/solaris-dev2dev
_______________________________________________
Gmerlin-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gmerlin-general

Reply via email to