Discussion:
Using Haali Matroska Muxer
Richard Mason
2007-02-10 12:49:01 UTC
Permalink
Hi,

I'm trying to add Matroska output to a DirectShow based capture utility
using the Haali Matroska Muxer. The muxer seems to work fine if I connect it
up in GraphEdit with a recorded file, but when I connect it in my app it
creates the file but does not write any data to it.

The setup is fairly standard - I'm creating the filter, using the
IFileSinkFilter interface to set the filename and connecting up some
streams.

Has anybody use the filter programmatically and have any idea what I may be
missing? Is there any extra documentation for using the filter?

A couple of side issues...

The muxer supports the MP4 container as well. Is there an interface that is
capable of setting this output?

I can't find any license information for the Haali suite. I assume it's
available under similar licenses to the rest of the Matroska project. At the
very least I'd just like to confirm that it isn't GPLed so I can use the
filters from non-GPL code.

Thanks, Richard
Mike Matsnev
2007-02-10 13:16:32 UTC
Permalink
Post by Richard Mason
I'm trying to add Matroska output to a DirectShow based capture utility
using the Haali Matroska Muxer. The muxer seems to work fine if I
connect it up in GraphEdit with a recorded file, but when I connect it
in my app it creates the file but does not write any data to it.
The setup is fairly standard - I'm creating the filter, using the
IFileSinkFilter interface to set the filename and connecting up some
streams.
Has anybody use the filter programmatically and have any idea what I may
be missing? Is there any extra documentation for using the filter?
I don't really know what's wrong with your setup, but this behaviour may
happen when some pins are connected, and don't deliver any samples. Since
matroska files must be properly interleaved, the muxer will wait for end
of stream or some samples from all pins.
Post by Richard Mason
A couple of side issues...
The muxer supports the MP4 container as well. Is there an interface that
is capable of setting this output?
You can set FileType property via IPropertyBag to 1 (VT_UI4), but I don't
recommend it. MP4 support is incomplete and is probably not compliant with
the MP4 standard (but it should be a valid ISO 14496-12 media file).
Post by Richard Mason
I can't find any license information for the Haali suite. I assume it's
available under similar licenses to the rest of the Matroska project. At
the very least I'd just like to confirm that it isn't GPLed so I can use
the filters from non-GPL code.
It's freeware, and the license is displayed when you install it.
Richard Mason
2007-02-11 21:10:06 UTC
Permalink
Thanks, I believe all the streams should be delivering samples, but I'll
throw in some diagnostic filters to check this out. Essentially the same
setup is working with a stream buffer sink on the end, which indicates the
streams are all coming in correctly.

Another possibility is that the details of the AM_MEDIA_TYPE is not fully
correct. I'm muxing MPEG-2 streams and haven't necessarily filled out all
the details of the MPEG2VideoInfo structure because its hard to get all of
this info. Does that sound like a likely problem?

Thanks for the other answers and the very prompt reply :)

ciao, Richard
Post by Mike Matsnev
Post by Richard Mason
I'm trying to add Matroska output to a DirectShow based capture utility
using the Haali Matroska Muxer. The muxer seems to work fine if I
connect it up in GraphEdit with a recorded file, but when I connect it
in my app it creates the file but does not write any data to it.
The setup is fairly standard - I'm creating the filter, using the
IFileSinkFilter interface to set the filename and connecting up some
streams.
Has anybody use the filter programmatically and have any idea what I may
be missing? Is there any extra documentation for using the filter?
I don't really know what's wrong with your setup, but this behaviour may
happen when some pins are connected, and don't deliver any samples. Since
matroska files must be properly interleaved, the muxer will wait for end
of stream or some samples from all pins.
Post by Richard Mason
A couple of side issues...
The muxer supports the MP4 container as well. Is there an interface that
is capable of setting this output?
You can set FileType property via IPropertyBag to 1 (VT_UI4), but I don't
recommend it. MP4 support is incomplete and is probably not compliant with
the MP4 standard (but it should be a valid ISO 14496-12 media file).
Post by Richard Mason
I can't find any license information for the Haali suite. I assume it's
available under similar licenses to the rest of the Matroska project. At
the very least I'd just like to confirm that it isn't GPLed so I can use
the filters from non-GPL code.
It's freeware, and the license is displayed when you install it.
_______________________________________________
Matroska-devel mailing list
http://lists.matroska.org/cgi-bin/mailman/listinfo/matroska-devel
http://dir.gmane.org/gmane.comp.multimedia.matroska.devel
Mike Matsnev
2007-02-11 22:06:26 UTC
Permalink
Post by Richard Mason
Thanks, I believe all the streams should be delivering samples, but I'll
throw in some diagnostic filters to check this out. Essentially the same
setup is working with a stream buffer sink on the end, which indicates
the streams are all coming in correctly.
Another possibility is that the details of the AM_MEDIA_TYPE is not
fully correct. I'm muxing MPEG-2 streams and haven't necessarily filled
out all the details of the MPEG2VideoInfo structure because its hard to
get all of this info. Does that sound like a likely problem?
No, incorrect/unsupported mediatype won't even connect, but there could be
problems if subsequent samples don't match the mediatype.

Loading...