H264/AVC Level Editor

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.3 - 2017-04-28

  • FIX: CLI parameter "--new-level" is not required if action is "restore".

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:
    http://coolsoft.altervista.org/comment/363#comment-363

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
 

Download

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.)

H264LevelEditor_1.5.3.zip
Description Latest version, includes both GUI and CLI
Release date 2017-Apr-28 Size 256,566 bytes
MD5 3ae92b7b79df9a3acbff8bdcb699bb5b
SHA1 ac5af720ee64b0babf1ec44af4272dbf5d26c8e4
SHA256 a087600d0265da5481c3e480542e8f05eb06b1dfcf284921cdd7a79424ae4797
H264LevelEditor_1.5.2.zip
Description Previous version
Release date 2014-Jul-17 Size 264,834 bytes
MD5 d9998f523f0ee21de338da472f8610a1
SHA1 1d4b0fa4cfa48195b61a8d0ce248b1ef85c1fe02
SHA256 32fbf98a6f7811c3a42a9aa25237f9fd272acc04c484089ec6e39b3f800d267f

Comments

Pages

When will it be released?

H264LevelEditor is now available, finally!

This tool would be wonderful if it didnt put the tag "Container [email protected]" even though it changed the level to 4.1 a sony blu ray refuses to play the file. That tag is the problem, because files i have tried have not been encoded with header compression nor they are corrupt. By using other tools I managed to make the same file playable, at the cost of remuxing, and I noticed that on those files doesnt appear the aforementioned tag. Please fix this bug!!!

My tool doesn't add/edit any tag at all; it only changes 3 header bytes, containing profile level definition.
So I'm sure the tag "Container [email protected]" was already present into your original file, then will be into patched file too.
Can you please confirm it?

That said, this'll be the first case I saw of a player using a tag content (which is a "free" text) instead of a well-coded header field. But maybe Sony players work this way.

Please send me a sample non-working file, extracting the first 5Mb of it, and I'll take a look. Use the contact form...

I confirmed  the original file DOES NOT carry that tag. Maybe you are not aware of this as well, but somehow this tag "muxing mode @highL5" is CREATED after changing the profile level. I guess that is a bug. I am not the only one facing this problem, you can see other posts commenting about this "muxing mode @highL5"..

What i am trying to say is the tool does put the tag "HighL5" on the field "Muxing mode" out of nowhere, because original files does not carry this tag at all.

A sony blu ray player refuses to play the file because of the tag "Container  profile @l5" regardless the change on profile level. The same file was modified in its profile level with tsmuxer, and this file IS playable. The only diference between the two ile is that, when analised using mediainfo. So i guess this is a bug. Please fix it soon. Thanks.

Thanks for tool.

It is very simple.1 suggestion :when the change is made it give a mesege "ok"or someting.

Thank You 

Thanks for your feedback.

Well, one of the (unreleased) beta version of the tool had a Message Box with the message you're asking for.
Since it was so annoying, I decideed to add a log area that will collect all the informational messages.

After a successful editing, the message "Level changed successfully to x.x" is shown into the log area at the bottom.

This tool is amazing! Is there any project for this to be made for Mac OS? :)

Well, since it's written in .NET, you could try to run it with Mono (http://mono-project.com/).
There's a precompiled MacOS X version downloadable here: http://www.go-mono.com/mono-downloads/download.html

Please give me a feedback if it works...

Great app, please add batch mode! It would be perfect...

It's already on my todo list.
Stay tuned!

Very good post ...i really enjoyed great job thank you!

I still have problem. Like your story, I have Samsung LED D5000 which is very sensitive to H.264 profile. I already changed the profile (before is [email protected]) to 4.1.

However, my TV keep refusing to play it and says that 'Video Codec not Supported'.

In addition to that, when I checked the file with mkvtoolnix (after changing profile to 4.1), it is written like below:

AVC (container [email protected])([email protected])

so, the file is still recognized with profile container of [email protected]

I guess that is why the TV refuses it; although the profile has been changed to 4.1 with your tool.

would you help me? please share how you can cheat your C6000 TV regarding this H.264 profile?

 

thanks in advance. and thank you very much for your tool !

Two things can prevent Samsung TV to play an .mkv file, giving the error you reported:

  1. wrong profile
  2. mkv header compression

You can check the latter with a tool like MediaInfo (http://mediainfo.sourceforge.net).

Anyway you could try to remux your original mkv DISABLING header compression (it's really fast, no recompression and no quality loss):

Please let me know if it works.

Hi, thanks for your reply. I've done what you suggested.

Regarding the header compression, I googled it up and found and indeed it is one of the problems. However, I (guessed) I already change the compression to None (with mkvmerge - mkvtoolnix), and remux. It was fast, less than 2 minutes. Then, change the H264 profile to lower one. but no luck, the file still can't be played with my samsung. error code still 'Video Codec not supported'. any other suggestion?

and I checked the file with MediaInfo, but as long as I know, MediaInfo does not show header compression status. Or did I not use it correctly?

B'Rgds

Well, so that maybe means your file is really encoded into a higher profile and not only mis-tagged.
Your last option is to reencode it; try first to reencode 10 seconds to see if it works.

Worked like a charm and helped me play an 1080p movie on my Samsung 40D5000 TV. The movie had container [email protected], changed it to 4.1 and worked great.

 

Hi, sorry for my bad english.

The program is very useful and quick but I've had a problem.

 

I'm trying to use H264 Level Editor in my pc but when I run, the program give me the message "Coolsoft - H264 Leve Editor stopped working". I've tryed run as adminstrator and compatibility mode. None of them work.

The odd is that in my laptop the program works fine. Both computers with Windows 7-32bits.

 

Help me please.

 

Thanks

 

Well, that message does not come from H264/AVC Level Editor, so I suppose there's something wrong within your system.
The program needs .NET Framework to run, so no need to run in compatibility mode (or even as Admin).

On Windows 7 the .NET Framework 3.5 is preinstalled, so all prerequisites are satisfied... I'm really out of ideas sad.

  • take a look at event viewer, maybe you could find something useful
  • try to run another .NET software on your PC, like my RTDChannelEditor (no need to install it, it's just an exe to run);
    if you get the same error, then the problem is with .NET framework installation, then look here.
  • try to turn off firewalls and antivirus (I don't need internet access and I don't do anything armful, anyway these software are conflicting with me...)

Please let me know if you succeed.

I'm writing an application that remuxes avi, mkv files into mp4files.
During the automated process, it doesn't changes the h264 level.

So, I would like to have an H264LevelEditor's command line version.

Could you make one?

Thanks!

Implementing a comand line version is not on my todo list, but I'll add it.
Meanwhile take a look here: http://www.ode2.com/?p=12. That helped me a lot to understand how to change AVC level.

While demuxing and remuxing stream, you could easily patch the stream on the fly, no need of other external software.

Version 1.1.0 has been released

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

The issue "Muxing mode [email protected]" now is gone.
I can confirm for sony blu-ray owners the tool now works perfectly with this new version (1.1.0).

Thanks to the developer for this wonderful tool. 

You're welcome.
Thank you for the detailed feedback and cooperation that lead us to v1.1.0.

Hi

possible edit video format for H264 files too ? (NTSC/PAL/SECAM) etc

cheers

Could you please elaborate your question a little bit?

Do you mean you want to change fps or standard resolution (PAL=720x576x25fps, NTSC=720x480x30fps)?
PAL/NTSC/SECAM are analog video formats, so I can't understand where you find them into an H264 stream.

thx for the tool!it is great!!

You're welcome

Pages

warning

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.