qtdemux - unable to locate moov atom

Sebastian Dröge sebastian at centricular.com
Thu Dec 22 12:27:42 UTC 2016


On Thu, 2016-12-22 at 02:45 -0800, amitchawla wrote:
> Hi,
> 
> I am using qtdemux in my pipelines, and while playing MP4/MOV files, I see
> that few of the files fail to play, as qtdemux exits with ....error
> 
> "no moov atom within the first 10 MB" .
> 
> Clearly for those MP4/MOV files that moov atom is at the end of the file.
> Since I am streaming the file to qtdemux via tcpserversrc over a tcp
> connection, I see that in qtdemux.c, probably the upstream_seekable is
> FALSE. 
> 
> My question is "Does qtdemux (version 1.2.4, 2014-04-18) that I have on my
> platform handles unoptimized MP4/MOV files where moov atom is not found at
> the start of the file? " or Do I have to implement that myself in qtdemux.c.  
> 
> I understand that I will have to implement this handling, considering my TCP
> streaming case (Push mode) as opposed to seeking moov atom from a file (Pull
> mode).

If upstream is not seekable (tcpserversrc is not), then qtdemux can't
possibly do anything here. And tcpserversrc has no ways of allowing
seeking, that's something that requires a protocol on top of TCP.

You will have to implement a source element for this, that allows
seeking and implements some kind of protocol on top of TCP. Then
qtdemux can possibly make use of that and find the moov. qtdemux in
1.10 at least has support for this and the code for this seems to exist
at least since 2009.


Nonetheless, it's generally a bad idea to stream such MP4 files over a
PUSH based transport.

-- 
Sebastian Dröge, Centricular Ltd · http://www.centricular.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 963 bytes
Desc: This is a digitally signed message part
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20161222/cf63a5b2/attachment.sig>


More information about the gstreamer-devel mailing list