Page 1 of 1

Playback and conversion is interrupted by "failed to read" error

Posted: 30 Oct 2024 19:35
by kikiserge
I have a video file that was recorded by the screen recorder Kazam.
However, it seems there was a problem, and Kazam didn't finish the file, instead I got a .movie file (10.0GB) and a .movie.mux file (0 bytes).
I first followed this method to recover the mp4: https://superuser.com/questions/601285/ ... -gstreamer
But that didn't work, the output file was only 256kB.

Then, I tried to use VLC to convert the .movie file into .mp4.
The .movie file already plays in VLC, but the playback stops at 2:35:30 (out of a total of 8:02:46).
I tried to convert the file to mp4, but the conversion also stops at 2:35:30.
I then tried converting again from 2:32:00, and looking at the debug messages, and this is what I get: https://pastebin.com/mxNPneUX

The conversion starts, there are a few errors in the log, but it still starts.
The initial errors are things like:
chain error: Too high level of recursion (3)
main debug: no video converter modules matched
main error: Failed to create video converter
chain debug: Trying to use chroma I0AL as middle man
main debug: looking for video converter module matching "any": 23 candidates
And there are multiple such messages, but everytime, the I0AL changes to things like I0AB, RV32, RV34, etc.

Then, the conversion continues normally, with the last visible messages being:
main debug: using encoder module "x264"
main debug: adding a new input
mp4 debug: adding input
mp4 warning: i_length
And when it reaches 2:35:30, conversion stops, and the messages I get immediately after are:
mp4 warning: track[0x2] will be disabled (eof?): Failed to read 417 bytes sample at 9972199181
main debug: killing decoder fourcc `mpga'
main debug: removing module "mpegaudio"
main debug: removing a sout input (sout_input: 0x7faf8c002800)
main debug: removing module "mpg123"
main debug: removing module "twolame"
main debug: removing module "ugly"
main debug: removing module "trivial"
main debug: removing module "audio_format"
mp4 debug: tk 1 elst media time 0 duration 210755918 offset 0
mp4 debug: removing input
mp4 warning: track[0x1] will be disabled (eof?): Failed to read 273606 bytes sample at 9972203352
main debug: killing decoder fourcc `h264'
main debug: removing module "h264"
I feel like the problems are with the "mp4 warning: track[0xX] will be disabled (eof?): Failed to read XXX bytes sample at 9972XXXXXX".
Does anyone know what the problem is, and if this file is fixable?
I'm essentially missing 5.5 hours of video, and I would love to get them back.

I tried to start the conversion from a later timepoint than 2:35:30, but the conversion doesn't start at all.
I have found a few posts in the forum that mention a similar error, but all of them seem to be with online streams, whereas for me, it's just a file I have on my computer.

Re: Playback and conversion is interrupted by "failed to read" error

Posted: 30 Oct 2024 20:28
by kikiserge
So I opened the 10GB file with BlessHex, and noticed some things:
The last byte of the file is at offset 0x252621000, which is 9972092928 (that is, almost 10.0GB)
This is very close to the 9972203352 address where vlc fails to read bytes.
So it seems that maybe I don't have more data than the 2:35:30 I'm able to convert.
Then, I looked into it more, and it seems the duration 8:02:46 is a metadata.
I verified in BlessHex, using this method: https://superuser.com/questions/1392810 ... hex-editor
And the bytes I have for time scale and duration are: 00 00 0B B8 05 2D FA 00
The first 4 mean 3000 time units per second, and the second 4 mean 86899200 time units, so total that is 86899200/3000=28966.4 seconds, which is 8:02:46.
So mystery solved!