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.
+ Reply to Thread
Results 1 to 13 of 13
-
-
...and why, WHY would you want to? Too much time on your hands?
-
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.
-
will you even have anything at all if you remove the I frames?
-
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! -
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 -
-
-
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! -
-
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).
Similar Threads
-
[Q] How to remove static frames
By justusiv in forum Newbie / General discussionsReplies: 20Last Post: 7th May 2012, 14:28 -
Remove frames from an iPhone 4S video (MOV) without re-encoding?
By kingmustard123 in forum Newbie / General discussionsReplies: 6Last Post: 11th Dec 2011, 11:18 -
Remove Duplicate Frames
By robindean in forum Video ConversionReplies: 26Last Post: 11th Mar 2010, 15:30 -
.avi file cannot be repaired - need to remove bad/corrupt frames
By realtechtalk in forum Video ConversionReplies: 0Last Post: 7th Sep 2008, 12:27 -
How to remove a single or more frames from a DVD
By justmehere in forum Authoring (DVD)Replies: 2Last Post: 22nd Apr 2008, 12:06