INMC Codec

I will start by writing that after extensive on-line searching, I can’t find any standalone player or installer for this codec.

My belief is that there is a proprietary player, with the codec built in, somewhere out there in the wild. I expect that the player would then readily accept the .avi file and play the footage. At this point, I also have not been able to ascertain the make / model of the DVR that outputs these files.

July 2013 Update: Codec Located

My point here is to show that there are clues and solutions to solving some of these problems (caused by the manufacturer)…. and all without installing a dodgy codec pack.

So, we have an .avi file. I have set up MediaInfo so it appears as a right click option in Windows. I right click the .avi file and select MediaInfo. It outputs some important information:

General
Inform : AVI: 82.1 MiB, 8mn 47s
Count of video streams : 1
Codecs Video : INMC
Complete name : H:\Temp\Work\Codec_avi\Camera.avi
Folder name : H:\Temp\Work\Codec_avi
File name : Camera
File extension : avi
Format/Info : Audio Video Interleave
File size : 86061568
Duration : 8mn 47s 880ms
Overall bit rate : 1 304 Kbps
Stream size : 322107

Video

Kind of stream : Video
Stream identifier : 0
Inform : 1 299 Kbps, 1280*1024 (5:4), at 25.000 fps, INMC
Codec ID : INMC
Width : 1280
Width : 1 280 pixels
Height : 1024
Height : 1 024 pixels
Pixel aspect ratio : 1.000
Display aspect ratio : 1.250
Display aspect ratio : 5:4
Frame rate : 25.000
Frame rate : 25.000 fps
Frame count : 13197
Bits/(Pixel*Frame) : 0.040
Stream size : 85739461

From this I can see that it requires the INMC Codec and the video has certain attributes. The one that jumped out was the Size – 1280 x 1024!

My first thought was to research the codec and it appears that it’s rather illusive. Some people stated VLC, but this crashes V2 on my Win7 64bit machine. The VLC clue though brought me onto reading that the codec was included within the LIBAV library of media decoders and also Mplayer. As a result I thought it was time to get a better look at the .avi before I try to do anything else….

Next, it was into Gspot:

gspot

gspot-gop

Some more clues! Gop Structure…. MP4 type file…..Differences in Total Frame Count, only 5584 Frames read as part of Frame Presentation Order. Also, have a look at the User Data, some free text with em4v. M4V usually represents raw mpeg4.

As I had read that the codec was included with LIBAV, I decided to use AVCONV for a bit more analysis and possible work.

AVProbe was used with the following command:

avprobe -show_streams -show_packets -pretty originalfile.avi > fileinfo.txt

This produced another analysis file that gave details on every video packet within the file. It was interesting to note the packet sizes. A large amount were only 4 bytes which led me to believe that these were duplicate markers. This would make sense and go some way to explaining why gSpot could only see 5584 frames as making up the Presentation order.

Avinaptic was next…

Part of the output revealed:

[ DRF analysis ]

average DRF: 2.423126
standard deviation: 0.494055
max DRF: 3

DRF<2: 0 ( 0.000 %)
DRF=2: 7613 ( 57.687 %) ############
DRF=3: 5584 ( 42.313 %) ########
DRF>3: 0 ( 0.000 %)

I-VOPs average DRF: 2.423126
I-VOPs std. deviation: 0.494055
I-VOPs max DRF: 3

The DRF=3 value of 5584 (Matching the gSpot Presentation frame count) was to much of a coincidence.

Finally, before anything else, I looked at the file within HXD in order to see anything in the AVI structure.

hex

Just after the Video List, in the text I see the location name, the camera number, the date and time and the details 720 x 288 and then 12IPS. Is the video actually a 720 x 288 stream and has it been recorded at 12 Images per second?

Into AVCONV with the following command:

avconv -f m4v -i originalfile.avi -vcodec copy outfile.m4v

I have told the program to read the file as an m4v stream and copy the stream raw.

This is the AVprobe output:

# avprobe output

[streams.stream.0]
index=0
codec_name=mpeg4
codec_long_name=MPEG-4 part 2
codec_type=video
codec_time_base=1/25
codec_tag_string=mp4v
codec_tag=0x7634706d
profile=Advanced Simple Profile
width=720
height=288
has_b_frames=0
sample_aspect_ratio=1\:1
display_aspect_ratio=5\:2
pix_fmt=yuv420p
level=5
avg_frame_rate=25/1
bit_rate=3.081Mbit/s
time_base=1/25
start_time=0\:00\:00.000000
duration=0\:03\:43.360000
nb_frames=5584

A 720×288 video stream consisting of 5584 frames!

It matches the GOP structure provided by Gspot in the original analysis….and more importantly, it plays in various programs, with all functionality and with no problems.

Adjusting the frame rate to 12 within Virtualdub matched the duration of the original file.

Conclusion: Again, I have to ask, why do CCTV Companies screw around with their video? This was a pretty normal mp4 stream until it came to be exported. It then gets into a complete mess.  A mess caused by a CCTV Manufacturer with obviously little clue on what’s needed.

I hope that this little example gives you some ideas on where to look and how to check every little detail to understand the video and verify the results provided by each piece of software. It also shows that it is sometimes possible to play a file when you don’t have the codec required!

Advertisements
By Spreadys Posted in EEPIP Tagged

One comment on “INMC Codec

  1. Pingback: INMC Codec – Update | Spreadys Space

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s