How to detirmine the avc1 codec ID for your video.
Some examples of the avc1.xxxxxx codec id can be found here:
HTMLMediaElement Interface Test
HTML5 Media
Codec id | Can your browser play it? |
---|---|
avc1 | |
hvc1 | |
avc1.42E01E | |
avc1.58A01E | |
avc1.4D401E | |
avc1.64001E | |
avc1.64001F | |
avc1.640032 | |
hvc1.1.6.L93.90 |
If your AVC/H.264 video is contained within an MP4 file you can do the following:
Download mp4v2 from here (mp4v2-r479-windows-binaries.zip)
Extract the zip, and locate mp4file.exe inside the Windows-Win32\Release folder.
Open up command prompt and type the path to mp4file.exe, followed by --dump and then the path to your mp4 file. e.g:
C:\Software\mp4v2\Windows-Win32\Release\mp4file.exe --dump "C:\videos\WAKE ME UP INSIDE - Goofy Edition.mp4"
Example output:
In the mp4v2 output, look for the line that contains this text:
type avcC (moov.trak.mdia.minf.stbl.stsd.avc1.avcC)(avcC - shown above in example output)
Beneath this line you will see three more lines, that look similar to this:
AVCProfileIndication = 100 (0x64) profile_compatibility = 0 (0x00) AVCLevelIndication = 31 (0x1f)
The numbers in the three sets of brackets are the ones we want to focus on. See anything familiar? (0x64)(0x00)(0x1f) - 64001f - avc1.64001f.
That's correct, AVCProfileIndication, profile_compatibility and AVCLevelIndication are what the numbers at the end of avc1. mean, and this is how you obtain them.
Codec id format example: hvc1.1.6.L93.90 (What these numbers mean and how to obtain them I still don't know)
Level value e.g: hvc1.1.6.L93.90 can be found using a hex editor on the .hevc track file
Profile value e.g: hvc1.1.6.L93.90 can be found using a hex editor on the .hevc track file
Some details on what the numbers mean
Source
The elements of the codecs parameter for H.265 (HEVC) are specified as below.
NOTE: The following specification replaces that in clause E.3 of [20].
When the first element of a value is a code indicating a codec from the High Efficiency Video Coding specification (ISO/IEC 23008-2), as documented in clause 8 of [20] (such as 'hev1' or 'hvc1'), the elements following are a series of values from the HEVC decoder configuration record, separated by period characters ('.'). In all numeric encodings, leading zeroes may be omitted,
Examples:
codecs=hev1.1.6.L93.B0
a progressive, non-packed stream, Main Profile, Main Tier, Level 3.1. (Only one byte of the constraint flags is given here; The value after the second period is 6 instead of 2 because according to ISO/IEC 23008-2 a Main Profile bitstream should also be marked as compatible to the Main 10 Profile).
codecs=hev1.A4.41.H120.B0.23
a (mythical) progressive, non-packed stream in profile space 1, with general_profile_idc 4, some compatibility flags set, and in High tier at Level 4 and two bytes of constraint flags supplied. For Quality metrics metadata track, the usage ofthe codecs parameter is specified in [53].