Anyone recommend a good mp4 recovery program?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • HugoVirtuoso
    Veteran
    • Jan 2012
    • 1237

    Anyone recommend a good mp4 recovery program?

    So I had another newly awesome PosChengband playthrough (was named Star II, another Ares parentage melee-based Skillmaster) OBS recording with heavy metal under way...only for a blackout to happen...Well, although I'm certain that my savefile is fine because of auto-save (and I haven't even opened it yet!), the mp4 that was being recorded is now a piece of corrupted heap that won't open at all....

    Any suggestions on a good mp4 recovery program/service?

    Thanks!

    P.S. If anyone reads this, DON'T record OBS playthroughs in MP4 format. Use FLV please. If you get a blackout like I did, your mp4 recording will be damaged and unrecoverable as OBS says....or so OBS thought so...

    ^FYI - Not an April Fool's joke either. (Just point pointing out. That's all.)
    Last edited by HugoVirtuoso; April 2, 2017, 03:13.
    My best try at PosChengband 7.0.0's nightmare-mode on Angband.live:
    https://www.youtube.com/watch?v=rwAR0WOphUA

    If I'm offline I'm probably in the middle of maintaining Gentoo or something-Linux or other.

    As of February 18th, 2022, my YouTube username is MidgardVirtuoso
  • Ironshod Al
    Scout
    • Apr 2017
    • 48

    #2
    Here is a couple of suggestions:

    #1
    If you don't want to do stuff in a command prompt, you could try the Convert... feature in VLC. If VLC will play your video, it can convert the video to a working mp4 file.
    The function is located under Media > Convert... (I'm guessing as my VLC shows menu items in danish). The keyboard shortcut is Ctrl+R. Converting will happen in realtime (streaming) so 2 hours of video will take 2 hours to convert.

    #2
    Another option was mentioned on stackoverflow. It requires ffmpeg and recover_mp4. Put ffmpeg\bin (I'm assuming you are using Windows) on your path and unpack recover_mp4.zip in the same folder as (a copy of) your damaged video. You also need a working video with the same format.

    With ffmpeg installed in C:\Applications\Media\ffmpeg and the broken video, a working video and recover_mp4.exe in C:\broken_video on my pc, I did the following (in a command prompt):
    Code:
    > set PATH=C:\Applications\Media\ffmpeg\bin;%PATH%
    > cd \broken_video
    > recover_mp4 working_video.mp4 --analyze
    The final output from recover_mp4 is two commands you must run (save them somewhere as the first will flood the screen with 'useless' information). The first command use recover_mp4 on the broken video and the second use ffmpeg on the output from the first command.

    #3
    The guy who created recover_mp4 offer repairing videos for you. I don't know how much he charge for this service, but it could be a third option.


    I have tested both suggested repairs (#1 and #2) by corrupting a (copy of a) mp4 video on my own computer and they both worked fine afterwards.

    #4
    If you are really lucky you may be able to just use ffmpeg like this:
    Code:
    > ffmpeg -r 30 -i broken.mp4 -vcodec copy -acodec copy fixed.mp4
    However, this didn't work with the video I corrupted, so I had to use the first two methods.


    The way I corrupted my video was by removing the last 2000 bytes through Python. This seemed like a decent simulation of a crashed recording.
    Code:
    > python -c "open('broken.mp4', 'wb').write(open('original.mp4', 'rb').read()[:-2000])"

    Comment

    • Ironshod Al
      Scout
      • Apr 2017
      • 48

      #3
      I posted a reply yesterday, but it hasn't shown up yet.
      After I submitted, a message was shown for a short while saying something about me not being able to see my reply immediately. There wasn't time to read the full message, but I guessed it was some kind of moderator thing, since the reply was my first post.

      Anyway, it seems like I'm able to post replies today, so I'll try to post my suggestions one more time.

      Comment

      • Ironshod Al
        Scout
        • Apr 2017
        • 48

        #4
        Here is a couple of suggestions.

        #1
        In case you don't like to use commandline tools, you can try to repair the video using VLC.
        If VLC will play your video, you can repair it by using the convert... feature. You find it under Media > Convert... (ctrl+R). My VLC is in danish, so I'm guessing a bit about the actual names in the menu. The conversion is done in realtime (streaming), so 2 hours of video will take 2 hours to convert/repair.

        #2
        In this stackoverflow thread it is suggested to use a combination of FFmpeg and recover_mp4.exe to fix videos. You need a command prompt (I'm assuming you are on Windows) with a path pointing to ffmpeg\bin and recover_mp4.exe in the same folder as (a copy of) the video you want to repair. You also need (a copy of) a working video in the same format as the broken one.
        With ffmpeg installed in C:\Applications\Media\ffmpeg and C:\broken_video as your working directory you should be able to do something like this:
        Code:
        > set PATH=C:\Applications\Media\ffmpeg\bin;%PATH%
        > cd \broken_video
        > recover_mp4 working.mp4 --analyze
        The output from recover_mp4 will give you two commands to run. Save them in notepad first, as the first command will flood the screen with 'useless' information. The first command will run recover_mp4 on the broken video and the second command will run ffmpeg on the output from recover_mp4. If all goes well, your video is repaired at this point.

        #3
        The guy who made recover_mp4 also offers to repair video files for other people, so this could be a valid option as well. I don't know how much he charge for his services.

        #4
        If you're really lucky, you may be able to repair the video simply by using ffmpeg. It is not very likely, though, but you could try this:
        Code:
        > ffmpeg -r 30 -i broken.mp4 -vcodec copy -acodec copy fixed.mp4

        I have tested the solutions in #1 and #2 on a corrupted video on my own computer and they both worked fine. To corrupt a video, I cut the last 2000 bytes from the file using Python. This seemed a decent simulation of a crashed recording session:
        Code:
        > python -c "open('broken.mp4', 'wb').write(open('working.mp4', 'rb').read()[:-2000])"
        Last edited by Ironshod Al; April 2, 2017, 07:56. Reason: Fixed minor bug in the Python example

        Comment

        • HugoVirtuoso
          Veteran
          • Jan 2012
          • 1237

          #5
          That's quite informative. I'll give one of these ideas a try later.
          My best try at PosChengband 7.0.0's nightmare-mode on Angband.live:
          https://www.youtube.com/watch?v=rwAR0WOphUA

          If I'm offline I'm probably in the middle of maintaining Gentoo or something-Linux or other.

          As of February 18th, 2022, my YouTube username is MidgardVirtuoso

          Comment

          Working...
          😀
          😂
          🥰
          😘
          🤢
          😎
          😞
          😡
          👍
          👎