Muxing video + audio to MXF container

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Muxing video + audio to MXF container

Miloš Selečéni
Hi, I have single MOV file with one raw-video(uncompressed 10-bit v210) signal + 2  raw-audio(PCM S24 LE) signals. I'm trying to mux it into MXF as j2k + audio(unchanged raw audio). I'm able to do it separately only video or only audio, but not both at the same time, the pipeline just hangs. 

Moreover if I add the  ! wavenc ! wavparse !  elemets into the pipeline the pipeline just works. But the audio is re-encoded and it's in different format. So my question is how to do it without the re-encoding the audio signal. Why the pipeline hangs?

I'm using my custom j2k encoder plugin, but openjpegenc doesn't work as well.

Here are my pipelines:

Only video:

gst-launch-1.0 --gst-debug=0,cmptoj2kenc:5 mxfmux name=mux ! filesink location=video_audio.mxf filesrc location=input.mov ! qtdemux name=demux demux.video_0 ! queue2 ! cmptoj2kenc ! queue2 ! mux.jpeg2000_video_sink_0

Only audio:

gst-launch-1.0 --gst-debug=0,cmptoj2kenc:5 mxfmux name=mux ! filesink location=video_audio.mxf filesrc location=input.mov ! qtdemux name=demux demux.audio_0 ! queue2 ! mux.bwf_audio_sink_0

 
Video + audio(hangs):

gst-launch-1.0 --gst-debug=0,cmptoj2kenc:5 mxfmux name=mux ! filesink location=video_audio.mxf filesrc location=input.mov ! qtdemux name=demux demux.video_0 ! queue2 ! cmptoj2kenc ! queue2 ! mux.jpeg2000_video_sink_0  demux.audio_0 ! queue2 ! mux.bwf_audio_sink_0

Video + audio(works):

gst-launch-1.0 --gst-debug=0,cmptoj2kenc:5 mxfmux name=mux ! filesink location=video_audio.mxf filesrc location=input.mov ! qtdemux name=demux demux.video_0 ! queue2 ! cmptoj2kenc ! queue2 ! mux.jpeg2000_video_sink_0  demux.audio_0 ! queue2 ! wavenc ! wavparse ! queue2 ! mux.bwf_audio_sink_0

Is it something with synchronization of audio and video signals?

From qtdemux there are

0:00:00.037710000 15644 0x7fdaf380ead0 WARN                 qtdemux qtdemux_types.c:222:qtdemux_type_get: unknown QuickTime node type tmcd

0:00:00.037729000 15644 0x7fdaf380ead0 WARN                 qtdemux qtdemux_types.c:222:qtdemux_type_get: unknown QuickTime node type v210

0:00:00.037751000 15644 0x7fdaf380ead0 WARN                 qtdemux qtdemux_types.c:222:qtdemux_type_get: unknown QuickTime node type in24

0:00:00.037758000 15644 0x7fdaf380ead0 WARN                 qtdemux qtdemux_types.c:222:qtdemux_type_get: unknown QuickTime node type enda

0:00:00.037763000 15644 0x7fdaf380ead0 WARN                 qtdemux qtdemux_types.c:222:qtdemux_type_get: unknown QuickTime node type chan

0:00:00.037769000 15644 0x7fdaf380ead0 WARN                 qtdemux qtdemux_types.c:222:qtdemux_type_get: unknown QuickTime node type in24

0:00:00.037774000 15644 0x7fdaf380ead0 WARN                 qtdemux qtdemux_types.c:222:qtdemux_type_get: unknown QuickTime node type enda

0:00:00.037779000 15644 0x7fdaf380ead0 WARN                 qtdemux qtdemux_types.c:222:qtdemux_type_get: unknown QuickTime node type chan

0:00:00.037789000 15644 0x7fdaf380ead0 WARN                 qtdemux qtdemux_types.c:222:qtdemux_type_get: unknown QuickTime node type tmcd

0:00:00.037795000 15644 0x7fdaf380ead0 WARN                 qtdemux qtdemux_types.c:222:qtdemux_type_get: unknown QuickTime node type .swr

Thank you
--

Miloš Selečéni

GPU Developer | Comprimato Systems s.r.o.


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Muxing video + audio to MXF container

Sebastian Dröge-3
On Wed, 2016-10-19 at 16:03 +0200, Miloš Selečéni wrote:

> Hi, I have single MOV file with one raw-video(uncompressed 10-bit
> v210) signal + 2  raw-audio(PCM S24 LE) signals. I'm trying to mux it
> into MXF as j2k + audio(unchanged raw audio). I'm able to do it
> separately only video or only audio, but not both at the same time,
> the pipeline just hangs. 
>
> Moreover if I add the  ! wavenc ! wavparse !  elemets into the
> pipeline the pipeline just works. But the audio is re-encoded and
> it's in different format. So my question is how to do it without the
> re-encoding the audio signal. Why the pipeline hangs?
>
> I'm using my custom j2k encoder plugin, but openjpegenc doesn't work
> as well.
>
> Here are my pipelines:
> [...]
The warnings from qtdemux here are irrelevant.


My guess for why the separate pipelines work, and also the pipelines
with wavenc ! wavparse is that the interleave between the audio and
video in the mov container is too big for the queues before the muxer.
wavenc ! wavparse would re-timestamp everything to start from 0 and
have no gaps.

Can you confirm this? What are the timestamps coming out of qtdemux for
both streams for the first couple of seconds?

--
Sebastian Dröge, Centricular Ltd · http://www.centricular.com
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (949 bytes) Download Attachment