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

Thanks for contestar.El problem is that it gives no error message, but that I simply click on the application, it opens

> I can not abrirla
> I simply click on the application, it opens

I'm lost: does it open or not?

Sorry for the translation application opens automatica.NO
for many times to click on the icon

If you're spanish, try to explain your question in your native language... since I speak italian I'll try to understand ;)

Hola a todos:

El problema que tengo es que la aplicacion no se abre,no muestra ningun mensaje,solamente NO ABRE, por lo

que no puedo abrir nngun archivo.gracias

I suppose there's something preventing the application to run, like an antivirus or a firewall like Comodo or ZoneAlarm.

Please deactivate this kind of softwares or mark H264LevelEditor executable as safe...

Everytime I try to use the program I get this error message

Runtime error:

--------------------------------------------------
Error: System.UnauthorizedAccessException
Message: O acesso ao caminho 'C:\Users\Patrick\Downloads\[AnimaKai] DEVIL SURVIVOR 2 THE ANIMATION - 06 [720p].mkv' foi negado.
Stack trace:
   em System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   em System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
   em System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
   em #=qh3ilAEMlgKy__2dD38lFvafokCsWRPzRbKOYuFwPqNyGhrAgvaYAHCJysCjCaRTF.#=qNTTsPTuKLJTf19F30lDtYXIhtpWLrBNeYs602LPIxfg=(Object #=qKzvLcvaEWsaB3cW2XHb6$Q==, EventArgs #=qnNJelOmcJaFc_jLAzBHJiQ==)
 

 

It seems that the file you're trying to edit is somewhat protected and H264LevelEditor is not able to open (and/or write) it.

If you're on Win7/8, try to run H264LevelEditor as administrator (right-click and choose "Run as administrator"); it should not be needed, anyway it worths a try.

I'm getting about the same error as the above user.  I tried running as administrator and it makes no difference.  I thought it might be the anti-virus blocking it, but I uninstalled and rebooted with the same results.

 

Runtime error: 
 
--------------------------------------------------
Error: System.UnauthorizedAccessException
Message: Access to the path 'C:\Users\fred\Desktop\movie.mp4' is denied.
Stack trace: 
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
   at #=qh3ilAEMlgKy__2dD38lFvafokCsWRPzRbKOYuFwPqNyGhrAgvaYAHCJysCjCaRTF.#=qNTTsPTuKLJTf19F30lDtYXIhtpWLrBNeYs602LPIxfg=(Object #=qKzvLcvaEWsaB3cW2XHb6$Q==, EventArgs #=qnNJelOmcJaFc_jLAzBHJiQ==)

Where's the H264LevelEditor.exe file located?
I mean: are you running it from an USB key or a network drive?

It seems that the .NET executable doesn't have the required permissions to access desktop folder; this could happen if a .NET executable is started from a non-system disk.
If so, try to copy (not link) it on your desktop and launch it from there.

Can you also confirm that the .mp4 file is writable (try to rename it...)?

Im getting exactly the same thing too. Tried running the program in program files, desktop and on another drive and it doesnt work, I can rename the files ok and have rebooted.

When you rename the files, does a UAC window appear (the one with Yes/No buttons)?
Try to right-click on the file and check if there's a shield near the Rename context menu option.

I had the same problem.

Right click the video file - properties and uncheck "read only", then the Level Editor will work.

Thanks for your suggestion
I'll add an additional test on this flag before level change; you'll find in into next 1.3.0 version.

I have a Samsung U46D5500 and I had problems with a L5.0 H264 mkv. Your program did the trick for me and save my 11GB download. Thank you for such a nice piece of software.

Hi!

First I have to say THANK YOU SO MUCH! Your app is AWESOME and I did a donate for you to keep the amazing job!

Now I believe that you told us that should be easy to fix something about H10 Level, is right? I'm trying to change the H. Level but MediaInfo keep the information  different from H264 editor tool, and my TV can't play, so I guess that it could be the issue.

Here are the information from Media info:

*******

General
Unique ID                                : 215328657855418697420654329375245099561 (0xA1FECA7F4B2A8D7987373C6D55466229)
Complete name                            : M:\ANIMES\INCOMPLETOS\Toaru Kagaku no Railgun S\Toaru_Kagaku_no_Railgun_S_17.mkv
Format                                   : Matroska
Format version                           : Version 4 / Version 2
File size                                : 461 MiB
Duration                                 : 23mn 39s
Overall bit rate                         : 2 722 Kbps
Movie name                               : Toaru Kagaku no Railgun S - 17: Study Group
Encoded date                             : UTC 2013-08-03 18:46:51
Writing application                      : mkvmerge v6.3.0 ('You can't stop me!') built on Jun 28 2013 20:09:41
Writing library                          : libebml v1.3.0 + libmatroska v1.4.0
Attachment                               : Yes / Yes / Yes / Yes / Yes / Yes / Yes / Yes / Yes / Yes / Yes / Yes / Yes

Video
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : High [email protected]
Format settings, CABAC                   : Yes
Format settings, ReFrames                : 11 frames
Codec ID                                 : V_MPEG4/ISO/AVC
Duration                                 : 23mn 39s
Width                                    : 1 280 pixels
Height                                   : 720 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Constant
Frame rate                               : 23.976 fps
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 10 bits
Scan type                                : Progressive
Title                                    : H.264 720p HDTV
Writing library                          : x264 core 136 r2348+704+51 d1baef6 tMod [[email protected] X86_64]
Encoding settings                        : cabac=1 / ref=11 / deblock=1:-1:0 / analyse=0x3:0x133 / me=umh / subme=10 / psy=1 / fade_compensate=1.10 / psy_rd=0.77:0.08 / mixed_ref=1 / me_range=32 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=0 / chroma_qp_offset=-5 / threads=18 / lookahead_threads=4 / sliced_threads=0 / nr=0 / decimate=0 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / fgo=0 / bframes=12 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=240 / keyint_min=24 / scenecut=40 / intra_refresh=0 / rc_lookahead=140 / rc=crf / mbtree=1 / crf=16.9000 / qcomp=0.80 / qpmin=0:0:0 / qpmax=81:81:81 / qpstep=4 / ip_ratio=1.24 / aq=3:0.85 / aq-sensitivity=11.00 / aq-factor=1.00:1.00:1.00 / aq2=0 / aq3=1:[0.70:0.70]:[0.70:0.70]:[0.70:0.70]:[0.70:0.70] / aq3-sensitivity=11.00 / aq3-factor=[1.00:1.00]:[1.00:1.00]:[1.00:1.00] / aq3-boundary=768:256:96
Language                                 : Japanese
Default                                  : Yes
Forced                                   : No
Color primaries                          : BT.709
Transfer characteristics                 : BT.709
Matrix coefficients                      : BT.709

Audio
ID                                       : 2
Format                                   : AAC
Format/Info                              : Advanced Audio Codec
Format profile                           : LC
Codec ID                                 : A_AAC
Duration                                 : 23mn 39s
Channel(s)                               : 2 channels
Channel positions                        : Front: L R
Sampling rate                            : 48.0 KHz
Compression mode                         : Lossy
Title                                    : AAC LC 2.0 256Kbps
Language                                 : Japanese
Default                                  : Yes
Forced                                   : No

*******

Regards from Brazil,

Another user here had a similar issue.

If those suggestions won't help, please extract a small part of the original file using mkvtools or your preferred video editor (no more than 5-10Mb). Check if this sample file has the same behavior of the original one then send it to me using the contact form.
I'll have a look at it as soon as I get back from holidays ;)

...to clear things out: High10 level is really different from High, because it means 10bit encoding instead of the standard 8bit one.
see here: http://forum.videohelp.com/threads/354840-What-is-the-difference-between-AVC-High-10-and-AVC-High

So conversion (or better "patching") between High10 and High is not really possible.

To fully understand, read the links below first:

https://forums.plex.tv/index.php/topic/47307-video-codec-not-supported/

http://wiki.samygo.tv/index.php5/Media_Play_and_DLNA

After some time trying to play an unsupported file, I reached these conclusions:

Putting aside Hi10p. Header Stripping and old encodings the tool cannot change, there is a last feature: It cannot change Reference Frames (Reframes)

Be careful about what you download, to make encodings smaller, some encoders are pushing AVC to its limits, using high reference frames wich are UNSUPPORTED in several players, encoding with settings that are no longer standard but experimental or to simply get the smallest possible size. As pointed out in one of those posts, Rips you should avoid are especially those encoded using Handbrake. Not once, but several times I found out that files encoded with this tool are unplayable. HANDBRAKE pushes AVC to its limits, and that is why most files are unplayable. If you get an Hi10p or 16 reframes 1080p file, unfortunately you should re-encode the video.

Amazing work, really, thanks. Just did a little donation.

There is any way that the next update support batch action? Drag and drop more than one file and convert the level of all if they had same level.

Thanks again...

Thanks for your support, really appreciated.

Your donation will push me to work on it soon.
I'm going to add both a command-line version and multiple file supportto the existing GUI.

Stay tuned!

Magnificent... I really gonna wait for it, thanks...

Just released version 1.4.0.
It adds a new command line version with support for multiple files.

Hope it helps...

Some BD Remuxes in .mkv got a line:

Muxing mode                      : Container [email protected]

and they don't run on some BD players.

Hope you can improve your wonderful program to fix this trouble too.

Where does that line come from? Mediainfo?

A small test file (5/10Mb) will help a lot.
Cut out a part of a longer one and test if the sample also has the same issue, then send it to me with the contact form.

I received your sample file, and it only seems badly muxed.

To fix it, open it with mmg.exe (one of the mkvtoolnix utils).
Now you'll see all the AV streams contained into the source MVK.
Select them one by one and set "Compression: none" into the "Extra options" tab at the bottom of the window.
Then select the output filename and press "Start muxing"; it will remux the file (it's a quick task).

After remuxing Mediainfo should show correct infos.
Now test the file and it should play (I see it's a [email protected], so should already work), otherwise pass it through H264LevelEditor.

Let me know if it works.

Thanks for the multiple files update, i'll donate again because of this update :)

Thanks again for your support, really appreciated.

Feel free to feedback if anything is not working as expected.

buscando como cambiar el nivel de un video que no pude lograrlo con otro software, llege a esta pagina, lo he probado e igualmente no lo cambia, me sigue apareciendo nivel 5 en el mediainfo, parece que hay algunos videos que no se pueden cambiar el profile, habra una version que subsane esto?

EDIT: Google translation

looking to change the level of a video that I could not do with another software, arrives to this page, I've tried and also does not change, I still appears mediainfo level 5, it seems that there are some videos that can not change the profile, there will be a version that corrects this?

Have you tried to increase limits (through the Options dialog)?

Rise up the search limit up to 10 MBytes and retry.

Otherwise send me a sample of the video (no more than 5/10 MB) using the contact form.

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.