A Twitter follower suggests a method of dealing with this modified H264.
I can understand why companies modify a standard. The problems come when they do not supply the correct tools in order to deal with their modifications. I discussed this at length here and mentioned the issues being discussed on other forums surrounding V264. A response came back on Twitter explaining one of the issues.
Firstly, just so you can take a look yourself, all of the files used are in the V264.zip that is shared in my Box online store. Its over on the right!
Test footage also available from source at http://www.gadgetvictims.com/2012/12/tenvis-ip-robot3-v264-format-and-demo.html
There is a player and a required .dll file. A number of online resources for this player come without the .dll and as such will fail to play the video.
Although under the Otput tab (Yes, that IS how its spelt!), there are options to play in actual size and aspect ratio, these didn’t do anything for me during testing!!
FFprobe on this file revealed a number of things:
codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
However, at this time I cant get this to play in anything other than the V264 player. I believe its something to do with the pixel format and am still doing tests with both ffmpeg and Mencoder. The .V264 has a header relating to the IP camera used and even stripping this out doesn’t appear to assist in standard playback.
If anyone has figured it out and takes up the challenge – please let me know and I will update this post!! Its quite possible that I have missed something.
So, in order to carry on in our investigation we need to use the V264 = > AVI Tool.
You then end up with an .avi file. Taking a quick look at this file in Mediainfo reveals some issues.
Jumping out to me is the file size – its the same as the original V264 but the stream is only 352×288. However that’s being detected as 16:9 and its detecting 30FPS where the original was 24FPS.
FFprobe reveals some explanations:
Each video frame is the same but the avi header is wrong.
To get around this issue is a simple rewrap in FFmpeg to change the avi header to 1280×720.
ffmpeg -i original.avi -vcodec copy -s 1280x720 original-size-corrected.avi
The next problem comes in the form of the added duplicates during the original rewrap using the V264 => AVI Tool. As these are added during the encoding you can’t just remove them.
Upon examining all versions in a hex editor, the makeup of each file is the same. its just how it is being interpreted that changes. Another side issue is the GOP structure. Frame 0 is an I frame and then its all P’s up to Frame 144! That’s a mighty large GOP.
Again, I would love to have been in the meeting where this process of dealing with the video was discussed. Lets hope that TENVIS get this sorted and supply the correct tools to deal with their video.
I am still working on this modified H264 so will update if I get any news. In the meantime, I hope the information above helps you if you happen to have to deal with these files and it highlights some of the areas to be wary of.