0

I've recorded a mp4 video with h265 encoding using my Android Pixel 3. After investigating the video, half of the video is blind. All other recordings are perfect. Is there any way to repair this video?

Here is an example image:

enter image description here

Here is the ffplay output of the video:

...
[hevc @ 0x7f951c10dfa0] Ignoring POC change between slices: 56 -> 58
[hevc @ 0x7f951c10dfa0] First slice in a frame missing.
[hevc @ 0x7f951c131320] Ignoring POC change between slices: 57 -> 59
[hevc @ 0x7f951c131320] First slice in a frame missing.
[hevc @ 0x7f951c05ee20] First slice in a frame missing.  0B f=0/0   
[hevc @ 0x7f951c11f900] Ignoring POC change between slices: 59 -> 1 
[hevc @ 0x7f951c11f900] First slice in a frame missing.
[hevc @ 0x7f951c03f140] Ignoring POC change between slices: 0 -> 2  
[hevc @ 0x7f951c03f140] First slice in a frame missing.
[hevc @ 0x7f951c10dfa0] Ignoring POC change between slices: 1 -> 3  
[hevc @ 0x7f951c10dfa0] First slice in a frame missing.
...

Here is some VLC debug output:

...
avcodec debug: enabling direct rendering
avcodec warning: cannot decode one frame (37827 bytes)
avcodec warning: plane 0 not aligned
avcodec warning: disabling direct rendering
avcodec warning: cannot decode one frame (35551 bytes)
avcodec warning: cannot decode one frame (38144 bytes)
avcodec debug: enabling direct rendering
avcodec warning: cannot decode one frame (35844 bytes)
avcodec warning: plane 0 not aligned
avcodec warning: disabling direct rendering
avcodec warning: cannot decode one frame (34724 bytes)
avcodec debug: enabling direct rendering
avcodec warning: cannot decode one frame (32349 bytes)
avcodec warning: plane 0 not aligned
avcodec warning: disabling direct rendering
avcodec warning: cannot decode one frame (34527 bytes)
avcodec warning: cannot decode one frame (33336 bytes)
avcodec debug: enabling direct rendering
avcodec warning: cannot decode one frame (33576 bytes)
avcodec warning: plane 0 not aligned
avcodec warning: disabling direct rendering
avcodec warning: cannot decode one frame (35214 bytes)
avcodec warning: cannot decode one frame (33355 bytes)
avcodec debug: enabling direct rendering
avcodec warning: cannot decode one frame (31715 bytes)
avcodec warning: cannot decode one frame (33360 bytes)
avcodec warning: cannot decode one frame (35697 bytes)
avcodec warning: plane 0 not aligned
...
0

If the image you posted is the file that the camera generated: No, you cannot restore the missing data. It has not been recorded and so you'd have to generate some where none was. Not possible, at least not if you don't want to paint each frame by hand.

2
  • Dependent on the player, I sometimes see the right side of the video popping up on the left side. So I assume that the data might be included but maybe the header is corrupted? Maybe the player do not know where the origin of each frame is?? Is there some possibility to investigate h265 streams and headers in deept?
    – Tik0
    May 27 '19 at 19:04
  • Ah, I see. It's always try and error with corrupted data, but you could try loading it in after effects, premiere, resolve, nuke, etc. and see if one of the programs manages to display the footage correctly. Alternatively, you could use Nuke to shuffle through each channel and perhaps rewire corrupt passages. If everything fails, just try to repack the file into a lossless h.264 .mp4 container and see how it behaves. May 28 '19 at 15:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.