Don't you like advertising? Neither do I...

...but CoolSoft is free, supported only by donations and a few (and non intrusive) banners.

Please add CoolSoft to your whitelist (click here to know how).

Thanks for your support.


H264/AVC Level Editor


Warning, JavaScript is disabled!

JavaScript is not available, maybe because you disabled it globally into your browser settings or you are using an addon like NoScript.

We do not have any dangerous JavaScript running here.
Please enable JavaScript; if you're using NoScript this image will help you adding CoolSoft to your whitelist.

Thanks for your comprehension and enjoy CoolSoft.

H264LevelEditor is a free and small tool to edit an H264/AVC encoded video stream and change IDC profile level (see here for detailed info about IDC levels).
Works both on MKV containers and raw H264 streams (*.h264, *.264, *.ts or any other file containing H264 encoded video).
It's a portable software, no need to install it, and comes in two flavours:

  • Graphical (GUI):
    Use it if you need to edit a single or few files.
  • Command line (CLI):
    It has the same features of the graphical version and can also work on multiple files.
    You could also include it into your custom conversion scripts.

Quick intro

Video stream/file is edited in-place, which means:

  • fast editing
  • no need to reencode the file (save time)
  • no need to demux, edit and remux streams (save time and HDD space)

To make a long story short, some mediaplayers (like my Samsung C6000 LED TV and Sony PS3) search the video file being played for an header info named AVC profile level; if this level is greater than the requested (supported) one they simply refuse to play it, even if they could.
BluRay specifications requires level 4.1, which is supported by all actual HD mediaplayers. Many of the video files you'll find on internet were encoded with an unnecessary high level, like 5.1.

The right way to change AVC level is to reencode the file; this is really time consuming, even if you have a recent CPU.
A quick way is to change some bytes inside the file and make it appear as being encoded with a different level; if you're lucky, changing that 5.1 to 4.1 will make the file playable on your mediaplayer.

Just to be clear: H264LevelEditor does not change video stream compression.
It only changes a value in file header, where it "declares" its level to the world.
Many of the 5.1 encoded files out there are not really 5.1, but over-leveled 4.0 or 4.1.
If the file itself is encoded using 5.1-only features, and your player is not able to decode it, well... you must reencode it, no way.

Usage help (graphical version)

Using H264LevelEditor is easy as 1-2-3:

  1. select the video file to edit by pressing then tree-dots button, or drag&drop the file directly from Windows Explorer
  2. H264LevelEditor will show actual AVC level into the "h264 level" box, choose the new level you want to set
  3. press "Change level" button
  4. click on "Donate" button (well, this is obviously optional ;) )

User BlackMIIX published a good video tutorial here, take a look.

Usage help (command line version)

Command line version can be used to edit a single file or a group of files in a shot.
Can also be called by .bat or .vbs custom scripts.

This will change level of file C:\MyFiles\test.avi to 4.1:

> H264LevelEditorCli.exe --action change --input "C:\MyFiles\test.avi" --new-level 4.1

This will change level of all file*.avi files into folder C:\MyFiles (file001.avi, file002.avi, fileabc.avi, ...) to 4.1:

> H264LevelEditorCli.exe --action change --input "C:\MyFiles\file*.avi" --new-level 4.1

See the included file H264LevelEditorCli.txt for more options, samples and exit codes.

Version history 

 v.1.5.2 - 2014-07-17

  • NEW: Added *.avc to the list of supported file extensions.

v.1.5.1 - 2014-04-22

  • NEW: Initial support for Mono Framework. The application should now run on Linux and Mac OSX through the Mono framework.

v.1.5.0 - 2014-01-29

  • NEW: Added an option to preserve last modified date of the file being patched. The option is available in both GUI and CLI versions.
  • FIX: Runtime error when closing the GUI while search is running.

v.1.4.0 - 2013-08-29

  • NEW: Command line version of H264LevelEditor is now available (H264LevelEditorCli.exe).
    It has the same patching engine of the GUI version and can also work on multiple files.

v.1.3.0 - 2013-08-16

  • NEW: Search task now runs in a separate thread.
    This will keep the UI alive during long searches.
  • FIX: Readonly files caused a runtime error when pressing the "change level" button.
    This state is now detected and user is asked to clear the flag before level change starts (thanks to Biomech for the suggestion).

v.1.2.0 - 2012-01-24

  • NEW: Search limit can now be extended up to first 100MB of the file (default is 1MB). This adds better support for MP4 files.
  • NEW: initial (and really experimental) support for H264 encoded AVI files. Please remember that AVI is not a good container for H264/AVC stream.
  • NEW: added automatic software update checking feature, can be set into Options dialog
  • FIX: fixed search algorithm to avoid @n.k profiles detection
    please see comments here for further details:

v.1.1.0 - 2011-08-05

  • NEW: backup feature, allows to undo any changes to input file
  • NEW: improved search algorithm, now changes the muxing tag too
  • NEW: fix to recognize mislabeled profiles, such the ones produced with very old encoders


H264LevelEditor it's a portable software (single EXE), no need to install it.

WARNING: .NET Framework 2.0 or newer is required: 2.0 (x86) - 2.0 (x64) - 4.0 (client profile)
(Windows Vista comes with .NET Framework 3.0 preinstalled, Windows 7 comes with .NET Framework 3.5 preinstalled.)
Description Latest version, includes both GUI and CLI
Release date 2014-Jul-17 Size 264,834 bytes
MD5 d9998f523f0ee21de338da472f8610a1
SHA1 1d4b0fa4cfa48195b61a8d0ce248b1ef85c1fe02
SHA256 32fbf98a6f7811c3a42a9aa25237f9fd272acc04c484089ec6e39b3f800d267f
Description Previous version
Release date 2014-Apr-22 Size 264,194 bytes
MD5 82b52c623ded58180700c96bb7329ee6
SHA1 4402fb4c41b9e7141fe293fbed27d2ff6f76b502
SHA256 d2b0e0258bfd6cd9c2ff78eaa8153822fab45999bfaefcd4556c39a34ce80231



Is it possible to add to program option to preserve original file date? As a result I would like to have file with the same date, but different level.

I just released version 1.5.0 with the new required feature.

Just tried you program and it did infact work.  I was able to convert a level 5.0 encoded movie to level 4.1.  Although, when i tried to play it on my tv, the picture was a little messed up.  For example the 1080p movie played with black bars at the top and bottom of the screen as apposed to taking up the whole widescreen tv.  Also, the encoder puts his name in the bottom corner and it extended off the actual screen.  Not sure if these problems were directly related to your program, or if my samsung tv incorrectly decoded the movie due to the level change, or if the problems are related to the encode itself. Since I was unable to test it before using your program, I have no way to really know.  However, I still thank you for making this software and I can confirm for everyone that it does exactly what it is supposed to do.  Thanks again.

I don't believe your issues are related to H264LevelEditor.
Changing the level won't change aspect ratio or resolution...

I suppose the file was already encoded with black bars in.

Can you compile your project against the mono framework so that we can run this on Mac OS X and Linux ? Thanks!



Sorry for the delay; I just released version 1.5.1 that should work on Mono.
Tested on Ubuntu 13.10 and Mono CLI 2.0.

Please report any issue.

Is it possible to add .AVC file extension to the file selector filter? Thanks in advance!

I don't know if AVC files can be patched too, never tried.
That's why I haven't added it to default filter.

Reading your comment I can't understand if you already tried to patch an AVC file and, if so, it worked or not.
Can you confirm that H264LevelEditor works on AVC files too?

To patch an "unsupported" file type you can open the file selector dialog and change the default filter to "All files".

Please let me know if it works and I'll add *.avc file extension to the supported list.

I am testing a workflow for AVC standard definition videos (with low bitrates) created with Sony Vegas Pro 12 using Main Concept AVC codec.

When I submit these videos to DVD Architect 6.0, it will always recompress them. I discovered that Vegas creates the low bitrate files using [email protected] profile, while DVD Architect demands [email protected] profile to consider the file as OK for a BD project.

The same files patched to [email protected] with H264/AVC Level Editor does not demand recompression in DVD Architect.

I don't know if this is enough to be sure that it works, but it sems to be a good evidence.


OK, that's enough for me to add *.avc file extension to the supported ones.

Please remember that H264LevelEditor only patches the original file, it does not reencode or remuxes it in anyway.
So, as long as DVDArchitect won't reencode them, you could be adding an "out-of-standard" file to your BD...

Stay tuned for the update.

Thanks a lot!


i want to make a batch script which will search for new files in a folder and then change the h264 level if it is 4.0 or below.

is it possible to get Command line version to output the current  h264 level of the input file?

I think you'd use MediaInfo command line version (CLI, see here) into your batch/VBS script.

MediaInfo does a better, detailed and "non heuristic" file analisys on your files than H264LevelEditor...

Great program but I also need to change fps in .264 stream file: can you to add this feature?

Thanks in advance

FPS cannot be easily found into the existing H264 stream containers: avi, mkv, h264, mp4, avc, ...
Each of these one has its own different header and FPS does not have a common prefix/suffix.

very good, but not suppport 10bits, plese the next update add support for Bit depth:10 bits, thanks.

What you mean with "10bits"?
Could you link some documentation?

its in the wiki, its the L 5.2, please make this program support the L 5.2 profile

Just added it.

Do you have a link to a sample (and short) [email protected] file to test?
I can't find one and all of my encoders support 5.1 only.

Can't find a link to download the original video file, except one that offers an EXE download.

Could you please:

  • cut out a really small portion (less than 10 MB) of the file (using i.e. MediaCoder, ffmpeg or any other cutting tool that doesn't reencode the streams)
  • check if also the cutted-out file is detected as @5.2
  • post it to me through the contact form (or upload elsewhere)

i'm sorry the only [email protected] 10bit video is the link i post, use tusfile link, how to download in tusfile, just uncheck "use download manager..." and click white box with writing like this "direct download link", and good to go, download normally you should. thnx

After looking at the video you posted I saw it's an High10@L5.2.

The worst part is High10: while changing a profile is not a good thing (that's why H264LevelEditor changes level only, not the profile) but it worst a try, this is even worse.
High10 has 10bits samples, versus the standard 8 of Base, Extended, Main and High.
See here:

I tried editing manually the High10 to High and the file became unplayable (also VLC and MediaInfo got crazy).

Sorry, reencoding the file is the way to go.

I've changed the level (e.g. from 3.0 to 4.1) and a file with the original file name and the extension .hle-bak is created.
What shall I do with this file?...I cannot get my original file patched with the changed level...

Please help!

H264LevelEditor edits original files directly.
The .hle-bak file contains "undo" informations to set the original file back to its initial state.

> .I cannot get my original file patched with the changed level...

Maybe it needs to search for more patterns and/or more deeply; take a look at Options and increase "Bytes" and "Found patterns".