can't playback recorded video (no moov box)

Microsoft Windows specific usage questions
Forum rules
Please post only Windows specific questions in this forum category. If you don't know where to post, please read the different forums' rules. Thanks.
fkonvick
Blank Cone
Blank Cone
Posts: 10
Joined: 01 Jan 2007 22:22

can't playback recorded video (no moov box)

Postby fkonvick » 01 Jan 2007 22:59

Hi, I'm using VLC 0.8.6 on W2k to grab IPTV to mp4 using something like this:

udp://@239.255.11.116 :udp-caching=600 :sout=#transcode{vcodec=mp4v,vb=4096,scale=1,acodec=mp4a,ab=192,channels=2}:duplicate{dst=display,dst=std{access=file,mux=mp4,dst="D:\Videos\test.mp4"}}

The problem is that VLC is unable to playback large recorded shows (worked with 125MB, failed with 339MB, 3GB etc.). The playback log follows. (BTW, I stop the recording manually using the "Stop" toolbar button.)

Thanks,
Filip


main debug: creating new input thread
main debug: waiting for thread completion
main debug: thread 3928 (input) created at priority 1 (input/input.c:265)
main debug: drive letter D: found in source
main debug: `D:\Videos\test.mp4' gives access `' demux `' path `D:\Videos\test.mp4'
main debug: creating demux: access='' demux='' path='D:\Videos\test.mp4'
main debug: looking for access_demux module: 1 candidate
main debug: creating access '' path='D:\Videos\test.mp4'
main debug: looking for access2 module: 5 candidates
vcd debug: trying .cue file: D:\Videos\test.cue
vcd debug: could not find .cue file
access_file debug: opening file `D:\Videos\test.mp4'
main debug: using access2 module "access_file"
main debug: pre-buffering...
main debug: received first data for our buffer
main debug: pre-buffering done 1408981 bytes in 0s - 85992 kbytes/s
main debug: creating demux: access='' demux='' path='D:\Videos\test.mp4'
main debug: looking for demux2 module: 45 candidates
mp4 debug: found Box: ftyp size 20
mp4 debug: found Box: wide size 8
mp4 debug: skip box: "wide"
mp4 debug: found Box: mdat size 355142036
mp4 debug: skip box: "mdat"
mp4 debug: found Box: size 2327966496
mp4 warning: unknown box type (uncompletetly loaded)
mp4 debug: out of bound child
mp4 debug: dumping root Box "root"
mp4 debug: | + ftyp size 20
mp4 debug: | + wide size 8
mp4 debug: | + mdat size 355142036
mp4 debug: | + size -1967000800
mp4 debug: ISO Media file (isom) version 0.
mp4 error: MP4 plugin discarded (no moov box)
ts warning: TS module discarded (lost sync)
ffmpeg debug: detected format: mp3

fkonvick
Blank Cone
Blank Cone
Posts: 10
Joined: 01 Jan 2007 22:22

Re: can't playback recorded video (no moov box)

Postby fkonvick » 01 Jan 2007 23:15

I retried with enforced mp4 demuxer (on another file, but same problem...). I noticed that in my previous post, the log would not be complete (up to the "main: nothing to play" message), instead VLC would eat CPU until manually aborted with "Stop", after which it would continue with "no demux2 module matching "mp4" could be loaded
" etc., ending with "nothing to play".

Any ideas?

Thanx,
Filip

main debug: creating new input thread
main debug: waiting for thread completion
main debug: thread 3888 (input) created at priority 1 (input/input.c:265)
main debug: drive letter d: found in source
main debug: `d:\videos\pw.mp4' gives access `' demux `' path `d:\videos\pw.mp4'
main debug: enforced demux ` mp4'
main debug: creating access '' path='d:\videos\pw.mp4'
main debug: looking for access2 module: 5 candidates
vcd debug: trying .cue file: d:\videos\pw.cue
vcd debug: could not find .cue file
access_file debug: opening file `d:\videos\pw.mp4'
main debug: using access2 module "access_file"
main debug: pre-buffering...
main debug: received first data for our buffer
main debug: pre-buffering done 1408981 bytes in 0s - 1375958007 kbytes/s
main debug: creating demux: access='' demux='mp4' path='d:\videos\pw.mp4'
main debug: looking for demux2 module: 1 candidate
mp4 debug: found Box: ftyp size 20
mp4 debug: found Box: wide size 8
mp4 debug: skip box: "wide"
mp4 debug: found Box: mdat size 4003046955
mp4 debug: skip box: "mdat"
mp4 debug: found Box:
!| size 1633182951
mp4 warning: unknown box type
!| (uncompletetly loaded)
mp4 debug: out of bound child
mp4 debug: dumping root Box "root"
mp4 debug: | + ftyp size 20
mp4 debug: | + wide size 8
mp4 debug: | + mdat size -291920341
mp4 debug: | +
!| size 1633182951
mp4 debug: ISO Media file (isom) version 0.
mp4 error: MP4 plugin discarded (no moov box)
main warning: no demux2 module matching "mp4" could be loaded
main error: no suitable demux module for `/mp4://d:\videos\pw.mp4'
main debug: removing module "access_file"
main debug: thread times: real 0m0.125000s, kernel 0m0.000000s, user 0m0.015625s
main debug: thread 3888 joined (input/input.c:412)
main: nothing to play

DJ
Cone Master
Cone Master
Posts: 8206
Joined: 01 Jan 2006 04:30
Location: Koloa, Hawaii USA

Postby DJ » 02 Jan 2007 00:32

What's the source format and container?

fkonvick
Blank Cone
Blank Cone
Posts: 10
Joined: 01 Jan 2007 22:22

Postby fkonvick » 02 Jan 2007 00:41

What's the source format and container?
As I said, I'm grabbing IPTV (udp://@239.255.11.116 :udp-caching=600), I think that it's mp2v/mpga in a MPG TS.....

Just checked the log, it's "TS over raw UDP", mpga, mpgv, libmpeg2 decoder,
mpeg_audio debug: MPGA channels:2 samplerate:48000 bitrate:256
libmpeg2 debug: 720x576 (display 720,576), aspect 576000, sar 16:15, 25.000 fps
(i.e. PAL)

I tried to re-mux the bad file using MP4Box but it says "IsoMedia File is truncated"... it does not complain about the files that VLC plays fine so probably VLC corrupts those large files somehow :-/

Tappen
Cone that earned his stripes
Cone that earned his stripes
Posts: 150
Joined: 30 Oct 2006 07:55

Postby Tappen » 02 Jan 2007 19:32

I bet the transcode fell behind the stream at some point and the output file got mucked up. Can't you use a 2-stage process, saving first to file as an MPEG TS encapsulation with no video or audio transcoding and run the transcode to mp4 after?

fkonvick
Blank Cone
Blank Cone
Posts: 10
Joined: 01 Jan 2007 22:22

Postby fkonvick » 03 Jan 2007 00:54

I bet the transcode fell behind the stream at some point and the output file got mucked up. Can't you use a 2-stage process, saving first to file as an MPEG TS encapsulation with no video or audio transcoding and run the transcode to mp4 after?
Well, the IPTV stream is somewhere between 8 and 16 Mbps, so I hoped that I would be able to do some compression on the fly. MP4 seemed fine... But the question is, should this happen? I mean I would accept dropped frames, maybe even a/v sync problems, but file corruption?? Is this a bug then?

DJ
Cone Master
Cone Master
Posts: 8206
Joined: 01 Jan 2006 04:30
Location: Koloa, Hawaii USA

Postby DJ » 03 Jan 2007 05:49

From MPEG2 to MPEG4 you will need the command fps=<framerate>

Tappen
Cone that earned his stripes
Cone that earned his stripes
Posts: 150
Joined: 30 Oct 2006 07:55

Postby Tappen » 03 Jan 2007 06:13

DJ is so the man when it comes to video/audio info.

DJ
Cone Master
Cone Master
Posts: 8206
Joined: 01 Jan 2006 04:30
Location: Koloa, Hawaii USA

Postby DJ » 03 Jan 2007 08:06

Just remuxing with MP4Box is not going to resolve the issue as MPEG2 video needs to be transcoded into MP4 before muxing in MP4Box. If you want to do this in VLC you will need to add the command mentioned earlier.

fkonvick
Blank Cone
Blank Cone
Posts: 10
Joined: 01 Jan 2007 22:22

Postby fkonvick » 03 Jan 2007 08:16

From MPEG2 to MPEG4 you will need the command fps=<framerate>
Do you mean, that the file can be corrupt because I'm missing fps from the commandline? Should I then record using e.g.

--sout-transcode-fps 25.0000 :sout=#transcode{vcodec=mp4v,vb=4096,scale=1,acodec=mp4a,ab=192,channels=2}:duplicate{dst=display,dst=std{access=file,mux=mp4,dst="D:\Videos\test.mp4"}}

Is this what you mean? And if yes, what value should I use? It's probably PAL 50Hz interlaced (most of the time, some content seems progressive 25fps...), so can MP4 handle interlaced video (I thought that yes)?

Thanks for the hints!

fkonvick
Blank Cone
Blank Cone
Posts: 10
Joined: 01 Jan 2007 22:22

Postby fkonvick » 03 Jan 2007 08:35

Just remuxing with MP4Box is not going to resolve the issue as MPEG2 video needs to be transcoded into MP4 before muxing in MP4Box. If you want to do this in VLC you will need to add the command mentioned earlier.
Ha, I'm not in sync with you in sending messages ;-)

I tried to remux the recorded mp4 in order to fix the file. I was not happy that my 4GB mp4 file was totally worthless and would not play at all. Look at my original post, where I show how I recorded the file (I transcoded the incoming mpeg2 into mp4v/mp4a and muxed it to a mp4 file). The problem is that when I record too long, the file can not be played back (some corruption occurs).

I'm going to try the fps command you mentioned to see whether this fixes it.

Thanks!

DJ
Cone Master
Cone Master
Posts: 8206
Joined: 01 Jan 2006 04:30
Location: Koloa, Hawaii USA

Postby DJ » 03 Jan 2007 08:52

Sorry it's been a long day here and I should be going to bed rather than try to be here. MPEG 2 to MPEG 4 doesn't need the command it's MPEG 4 to MPEG 2 that needs the command. FPS can be found in Stream and Media info.

Also it is seldom that MPEG 2 is 25fps generally it is 29.97 or has a 3-2 pull down applied so that it would be 23.976

The command would look something like this:

:sout=#transcode{vcodec=mp2v,vb=1024,fps=23.976,scale=1,acodec=mp2a,ab=192,channels=2}:duplicate{dst=std{access=file,mux=ps,dst="C:\Documents and Settings\Owner\My Documents\My Videos\Test.mpeg"}}

or this if you wanted to watch the program but the first way will do best speed of your machine.

:sout=#transcode{vcodec=mp2v,vb=1024,fps=23.976,scale=1,acodec=mp2a,ab=192,channels=2}:duplicate{dst=display,dst=std{access=file,mux=ps,dst="C:\Documents and Settings\Owner\My Documents\My Videos\Test.mpeg"}}

Looking at messages during the transcode will often give clues to any proplems.

Going in the other direction (MPEG 2 to MPEG 4) the command should look something like this:

:sout=#transcode{vcodec=mp4v,vb=1024,scale=1,acodec=mp4a,ab=128,channels=2}:duplicate{dst=display,dst=std{access=file,mux=mp4,dst="C:\Documents and Settings\Owner\My Documents\My Videos\Test.mp4"}}

or like this if you don't need to watch the output. Just remember watching the video puts more weight on your CPU and must happen in real time.

:sout=#transcode{vcodec=mp4v,vb=1024,scale=1,acodec=mp4a,ab=128,channels=2}:duplicate{dst=std{access=file,mux=mp4,dst="C:\Documents and Settings\Owner\My Documents\My Videos\Test.mp4"}}

fkonvick
Blank Cone
Blank Cone
Posts: 10
Joined: 01 Jan 2007 22:22

Postby fkonvick » 03 Jan 2007 09:07

Also it is seldom that MPEG 2 is 25fps generally it is 29.97 or has a 3-2 pull down applied so that it would be 23.976
Sure, when it's DVDs and the like, but this is IPTV that my ISP transcodes (maybe even sends raw?) from DVB-T or DVB-S, and this comes in my country's format, which is PAL, i.e. 25p or 50i.
Looking at messages during the transcode will often give clues to any proplems.
I'll try to save the log next time...There were some msgs about dropped packets ("too late for... something..." can't remember exactly).
Going in the other direction (MPEG 2 to MPEG 4) the command should look something like this:

:sout=#transcode{vcodec=mp4v,vb=1024,scale=1,acodec=mp4a,ab=128,channels=2}:duplicate{dst=display,dst=std{access=file,mux=mp4,dst="C:\Documents and Settings\Owner\My Documents\My Videos\Test.mp4"}}
This is exactly what I do, innit? Well, I use other bitrates, so I can try lower them, but I still think that should it be a performance problem, I would get some other problems than a corrupt file!?

DJ
Cone Master
Cone Master
Posts: 8206
Joined: 01 Jan 2006 04:30
Location: Koloa, Hawaii USA

Postby DJ » 03 Jan 2007 09:16

The only thing I can think of is your machine may be to slow to capture a live stream and watch it too. Normally in a transcode the coding will speed up or slow down according to the speed of the machine, resolution of the video and or bit rate. Try opening your task Manager and look at the CPU usage during the transcode.

fkonvick
Blank Cone
Blank Cone
Posts: 10
Joined: 01 Jan 2007 22:22

Postby fkonvick » 03 Jan 2007 09:27

The only thing I can think of is your machine may be to slow to capture a live stream and watch it too. Normally in a transcode the coding will speed up or slow down according to the speed of the machine, resolution of the video and or bit rate. Try opening your task Manager and look at the CPU usage during the transcode.
Maybe, the CPU load is about 30-70% (but it's P4 2.6 with HT enabled), so it might be a problem (maybe the mp4 encoder is single-threaded?) But I still don't see why VLC should produce a corrupt file.

Thanks for your hints, and sorry to keep you out of bed!

DJ
Cone Master
Cone Master
Posts: 8206
Joined: 01 Jan 2006 04:30
Location: Koloa, Hawaii USA

Postby DJ » 03 Jan 2007 09:34

30 to 70% shouldn't be an issue. Did you note the memory in use IE. was there any memory left to use? Did Messages indicate a problem during the transcode? I do MPEG2 to MP4 quite often and don't experience a problem even for real time encoding.

fkonvick
Blank Cone
Blank Cone
Posts: 10
Joined: 01 Jan 2007 22:22

Postby fkonvick » 03 Jan 2007 09:41

30 to 70% shouldn't be an issue. Did you note the memory in use IE. was there any memory left to use? Did Messages indicate a problem during the transcode? I do MPEG2 to MP4 quite often and don't experience a problem even for real time encoding.
I suspect that there are some high bandwidth/fast motion scenes where one of the logical processors might be overloaded. It seems to me that the video encoder uses one logical processor and the audio encoder uses the other. Maybe when the video encoder reaches 50% (ie. 100% of the logical processor), it might somehow drop frames....still, corrupt file? :-) Memory should not be an issue, I have 1GB RAM...but I'll monitor it next time.

I'm at work now so I'll try when I get home (you know, it's 10am here :-)) and post some log digest here. Thanks for all your input!

fkonvick
Blank Cone
Blank Cone
Posts: 10
Joined: 01 Jan 2007 22:22

Postby fkonvick » 03 Jan 2007 23:20

I'm at work now so I'll try when I get home (you know, it's 10am here :-)) and post some log digest here. Thanks for all your input!
There's a lot of

main warning: late buffer for mux input (45611)
main warning: PTS is out of range (-29722), dropping buffer
main warning: output date isn't PTS date, requesting resampling (87245)
main warning: computed PTS is out of range (30855), clearing out
main warning: buffer is 43748 late, triggering upsampling
main warning: input PTS is out of range (12521), trashing
main warning: vout synchro warning: pts != current_date (-18400)

and some of those:

stream_out_transcode debug: late picture skipped (6034)
main debug: audio output is too slow (57459), trashing 50000us
ts warning: discontinuity received 0x0 instead of 0x2 (pid=162)
mpeg_audio debug: emulated startcode (no startcode on following frame)
main warning: backward_pts != dts (80000)
main warning: backward_pts != current_pts (80000)
ffmpeg warning: almost fed libavcodec with a frame in the past (current: 151045984800, last: 151046024800)

This is basically what I got while recording a (valid) 125MB mp4 file (mp4 2048v/128a), I'll try again with bigger (presumably corrupt) file to get some more complaints.


Return to “VLC media player for Windows Troubleshooting”

Who is online

Users browsing this forum: No registered users and 28 guests