VideoHelp Forum
+ Reply to Thread
Results 1 to 13 of 13
Thread
  1. Member
    Join Date
    Jan 2013
    Location
    switzerland
    Search Comp PM
    I am working on a bit of an experimental project… I want to remove i-frames from my video file. I am able to accomplish this as i intended in the open-source software avidemux, but only for .avi files. However, avidemux is buggy/incompatible with h264 formats, and I would very much rather use mp4 in h264 since
    a. it seems to me that it can preserve far more quality than avi. and since
    b. avi is quite incompatible with fcp, so working in mp4 would save me time and quality degradation resulting from converting back and forth between avi and mp4…

    so my question is, is there an alternative to avidemux that allows you to accomplish this for mp4/h264?

    I am working with no audio.

    Also, if you have any other suggestions clarifying things i may have overlooked or misunderstood, please let me know

    Finaly, Im using OS X 10.6.8, but as a last resort I would be happy to use a Windows or Linux program if that was the only solution out there.
    Quote Quote  
  2. just out of curiosity: How do you remove i-frames using avidemux?
    Quote Quote  
  3. Member
    Join Date
    Jan 2007
    Location
    Republic of Texas
    Search Comp PM
    ...and why, WHY would you want to? Too much time on your hands?
    Quote Quote  
  4. Member
    Join Date
    May 2003
    Location
    Peterborough, England
    Search Comp PM
    I may be completely wrong as I never work with mp4 files, only DV-AVI and DVD compliant mpeg2, but will you even have anything at all if you remove the I frames? Assuming mp4 is a better compression than mpeg2 but works in the same way, the I frames are the only ones that contain the full frame. An I frame is sent that is the complete frame, subsequent intermediate frames are simply a code saying, the same as the last frame except for this bit, this bit, and this bit, then when the next I frame comes along, it can compare the guesses made on previous frames and confirm they are correct. If you remove the I frame there is nothing to reference subsequent frames to.
    Quote Quote  
  5. will you even have anything at all if you remove the I frames?
    no, if you remove all I- and IDR- frames the stream shouldn't be decodable,...
    Quote Quote  
  6. Member
    Join Date
    Jan 2013
    Location
    switzerland
    Search Comp PM
    Originally Posted by Richard_G View Post
    I may be completely wrong as I never work with mp4 files, only DV-AVI and DVD compliant mpeg2, but will you even have anything at all if you remove the I frames? Assuming mp4 is a better compression than mpeg2 but works in the same way, the I frames are the only ones that contain the full frame. An I frame is sent that is the complete frame, subsequent intermediate frames are simply a code saying, the same as the last frame except for this bit, this bit, and this bit, then when the next I frame comes along, it can compare the guesses made on previous frames and confirm they are correct. If you remove the I frame there is nothing to reference subsequent frames to.

    Your knowledge is correct with regards to how mp4 and mpeg2 work. And I am well aware of how the compression works by having i-frames that hold all information of the one image, while P and B frames save file space by only holding reference information that is based on the i-frame. Essentially, what I successfuly did with avi files and would like to do with the mpeg files is in fact remove the i-frames and intentionally create a broken file, with missing information... Though the file that is produced is not readable by all players, the players that do read it show strange pixelated corruption that appears as a result of these references being missing/wrong... Like I said, this is experimental, but it does in fact work with avi files, and in 'real life'(like on tv or something - natural error) when an i-frame is somehow missing in an mpeg file, it should have the same effect.... so instead of it being an accident, I want to intentionally recreate this... but the tool i have used(avidemux) does not support h264

    Finally, in avidemux, the iframe is quite simply removed by setting an in point and out point to make the selection of the frame and then you just press delete on your keyboard or under the edit menu.. so if you know of any other software out there that has the same/similar capabilities as avidemux but supports h264, I imagine that that would do the trick!

    ...and yes, the popular term is datamoshing

    Thanks for your input!
    Quote Quote  
  7. you could edit the file with a hex editor:

    * NAL Units start code: 00 00 01 X Y
    * X = IDR Picture NAL Units (25, 45, 65)
    * X = Non IDR Picture NAL Units (01, 21, 41, 61) ; 01 = b-frames, 41 = p-frames
    * since frames can be splitted over multiple NAL Units only count the NAL Units with Y > 0x80
    Quote Quote  
  8. Member
    Join Date
    Jan 2007
    Location
    Republic of Texas
    Search Comp PM
    Originally Posted by jagabo View Post
    Oosh! Some of the examples on that link induced an acid flashback.
    Quote Quote  
  9. Originally Posted by Selur View Post
    you could edit the file with a hex editor:

    * NAL Units start code: 00 00 01 X Y
    * X = IDR Picture NAL Units (25, 45, 65)
    * X = Non IDR Picture NAL Units (01, 21, 41, 61) ; 01 = b-frames, 41 = p-frames
    * since frames can be splitted over multiple NAL Units only count the NAL Units with Y > 0x80
    Great! so close to my Question.
    But i´m too noob to understand :(
    so i was happy to see that youre still active.

    My concrete question is:
    Which part of code is (relieable) identifying I-Frames?
    Which part of code is (relieable) identifying P-Frames?

    thx in advance
    Quote Quote  
  10. I haven't figured out a reliable way to delete i-frames from an MPEG-4 file, but one way that has worked for me is by deleting '˙' characters after the header data in a .avi file. It doesn't work every time, but generally removes all i-frames from the footage without too much glitching. If you want to "bake" that effect to create a slight datamosh effect and remove any erroneous still frames, try running Video No Movement Free (https://download.cnet.com/Video-Remove-No-Movement-Free/3000-13631_4-78011109.html).

    I hope this helped!
    Quote Quote  
  11. Probably best way to do such things is to use a dedicated ffmpeg bitstream filter https://ffmpeg.org/ffmpeg-bitstream-filters.html#noise - i use this filter to simulate data corruption due errors in transmission and noise can be injected at various levels of the stream (transport stream, elementary stream etc) - there is many options available (few years ago not present so not only noise can be injected).
    Quote Quote  



Similar Threads

Visit our sponsor! Try DVDFab and backup Blu-rays!