Tools and other software Media-Buddy - the MKV Buddy successor. (3 Viewers)

Lehmden

Retired Team Member
  • Premium Supporter
  • December 17, 2010
    12,596
    3,992
    Lehmden
    Home Country
    Germany Germany
    Hi.
    A little preview of what's to come...

    I have now installed an editing function in Media-Buddy, with which you can edit the videos with frame precision during normal playback. At the moment this is only active when you re-code. Without re-encoding you cannot edit frame-accurate. This only works on keyframes, as this is the only place where a real image exists. Everything between two keyframes is only saved as a "difference", not as a whole image, which is what makes the enormous compression possible in the first place. Since the keyframes are rarely where they would be used for editing, you have no choice but to re-encode them. Otherwise you could just cut at the keyframes. and they can be several seconds apart. Theoretically, you could also care less about the accuracy and only do the editing on key frames. That's not precise enough for me. That's why my urge to incorporate the editing function into remuxing isn't particularly strong.

    For cutting, a cutting list in .csv format is required, such as can be generated by the open source tool Lossless Cut. Since the .csv format is a pure text file, you can create it with any editor. In a .csv, data is saved one after the other, separated by commas. If you use Lossless Cut, you can edit the video directly there. However, you still have to do the other actions later in Media-Buddy. There's also the so-called "Smart Cut" here, which tries to recode only the area around the cut and simply reux everything else. With h264 in the .ts container this usually works. But with .mkv, .mp4 or more modern codecs like h265 this goes wrong 99% of the time.
    I open the video in question in Lossless Cut and specify the cuts there. But instead of encoding the video in Lossless Cut, I just export the cutting list. To do this, go to Export project > Timestamp (csv) in the file menu.

    Lossless-Export.jpg


    Now the cutting list is created next to the video file in a fraction of a second. This cut list can be processed directly by Media-Buddy.

    A cutting list like the attached example looks like this from the "inside":

    Code:
    00:00:10.000,00:58:24.576,

    Coding only starts at 0 hours, 0 minutes and 10,000 seconds and the encoding ends at 0 hours, 58 minutes and 24,576 seconds. The timestamp is accurate to 1/1000th of a second, which is more than enough. In addition, FFMpeg can understand these timestamps directly. In this example, the first 10,000 seconds are cut out and anything after 58 minutes and 24,576 seconds is also not processed. This is the "famous" title sponsorship, i.e. "This show is presented by..." at the beginning and end of the show, which I don't want to have in my finished video.

    In this case there is no advertising within the actual film (series episode) because it comes from a public broadcaster. But you can also remove advertising within the episode (the film), which is unfortunately always extremely annoying on private channels. Then there are not just 2 values, but 4, 6, 8,... values in the cut list, depending on the number of advertising blocks.

    Since FFMpeg can only process two such values (beginning and end) at once, the film is then divided into a corresponding number of parts, which are then reassembled without loss at the end. To do this, temporary files must be created in the Media-Buddy_Temp folder, which is why there must be enough space available there. The assembly takes place fully automatically and within a few seconds. So you don't notice anything about it. If only the beginning and end are cleaned as in the example above, there is no need to create temporary videos.

    The cut list must be named exactly like the actual video, only with the ending .csv. So “Video.mp4” includes “Video.mp4.csv” as a cutting list, although “Video.csv” also works. Lossless Cut creates a “Video.mp4.csv”. But you can also use any other program that can generate such cutting lists. I don't know Comskip, but I can imagine that you can also use a Comskip list for cutting. If necessary, the cutting list can also be created manually in the editor. As long as the content can be identified as a comma-separated list of timestamps, it should work. Lossless Cut is freely available and works well. That's why the cutting function was designed for the cutting list generated by Lossless Cut.

    The editing function is automatically activated for all modules that (can) re-encode videos. So no matter whether it's a series assistant or transcoding videos, as soon as a cutting list is available, it will be processed. If there is no cutting list, everything goes as usual. That's why you don't have to configure anything extra here.

    The function is ready and is currently in the testing phase.

    Unfortunately, there are two other issues that need to be fixed for a new version.
    Firstly, the trailer download no longer works. YouTube changed something that caused the operation to be aborted. Until the new version you should deactivate the trailer download for the time being.
    On the other hand, no graphics apart from the poster are currently being loaded from TVDB. As long as the relevant graphics are either available locally or can be found on fanart.tv, no problem. But if they are only available on TVDB, you currently have to load and insert them manually. We don't yet know why this is the case.

    The new version will only come out when at least the TVDB problem is solved. If possible, the trailer download should also work again.

    I have attached a preview version for the brave ones. Simply swap the files in the Media Buddy folder for those from the attached archive and the editing function should be available. If you have any problems with this, please let us know, thank you.








    In
     

    Attachments

    • Media-Buddy (1).zip
      4.8 MB
    • S06E02 - Der begrabene Hund.mp4.csv.zip
      231 bytes

    Lehmden

    Retired Team Member
  • Premium Supporter
  • December 17, 2010
    12,596
    3,992
    Lehmden
    Home Country
    Germany Germany
    Hi.
    We managed to fix the two bugs mentioned above (TVDB graphics and YT trailer download). The cutting function worked 100% in all tests. That's why the new version 1.3.0.6 is now available for download on the website (link in the first post)

    The current version of Media-Buddy still uses FFMpeg 5. Initial tests with FFMpeg 6 have not been successful so far. The resulting videos had problems with navigation across the board, which did not occur with FFMpeg 5 despite the same source material and the same settings.
     

    Lehmden

    Retired Team Member
  • Premium Supporter
  • December 17, 2010
    12,596
    3,992
    Lehmden
    Home Country
    Germany Germany
    Hi.

    There is a new version of Media-Buddy available today, 1.3.0.9

    In addition to a few bug fixes, a new feature is the ability to create mappings for age ratings. The online data sources rarely contain the classifications that are suitable for us. For example, if it says "12" in IMDB, if you have selected German, it will be mapped to "FSK 12" so that the appropriate FSK logo can be displayed in the HTPC software (Kodi, media portal,...).

    But there are countless systems internationally. For example, “PG-13” could also be specified as a classification. If you use the default setting for "German", "PG-13" is also mapped to "FSK 12".

    For other countries and systems you can now easily set this yourself using the wizard. I don't really know most of the systems. That's why I can't make a preset for all possible countries. If you do this yourself, it will only take a few minutes at most. That's reasonable, I think. You will be guided through the process step by step. Even if the default setting for Germany doesn't suit you and you would rather have "PG-13" mapped to FSK 16, for example, you can regulate this with the "Individual" setting. You can also switch off the mapping completely. The classification will then be adopted exactly as it is stored in the online source.

    This new feature can be found under Settings -> Metadata Settings. A change requires a restart of the program to take effect.

    Until now, you could only adjust this manually for each film and series individually in the post-processing module. Now Media-Buddy does this right away when processing it. Less work again...

    The download is available wherever it can always be found (see 1st posting). The 110 MB file is currently being uploaded. Since my internet is particularly slow today, it could easily take another hour until the upload is finished. So please be patient, thank you. Have fun with Media Buddy.
     

    dot19408

    New Member
    July 4, 2024
    1
    0
    Home Country
    United States of America United States of America
    Hello,
    Just found Media-Buddy and it seems to be exactly what I need.
    However, when I start ANY process I receive this error:
    Line 42864 (File 'C:\Program Files\Media-Buddy.exe'):
    Error: Subscript used on non-accessable variable.

    The media is on a NAS. I tried via UNC path and Mapped drive.
     

    Lehmden

    Retired Team Member
  • Premium Supporter
  • December 17, 2010
    12,596
    3,992
    Lehmden
    Home Country
    Germany Germany
    Hi.
    A new version 1.3.0.18 is available (see first post). It's only a bugfix release with no new features. I recommend to update to the new version as the fixed bugs were nasty sometimes.
     

    Lehmden

    Retired Team Member
  • Premium Supporter
  • December 17, 2010
    12,596
    3,992
    Lehmden
    Home Country
    Germany Germany
    Hi.

    Over the past few weeks, I've been sifting through my entire media library and adding missing movie set names/descriptions or missing "aired/premiered" information. I've noticed many small issues in the post-processing section. I've fixed them right away. It's an advantage when working with uncompiled source code. You can fix things like that right away. This has ironed out countless small quirks. There are also some completely new features. For example, you can now edit the "back" metadata for multiple episodes (multiple episodes in a single video, e.g., S01E01E02). That wasn't as easy as it sounds. You can't display completely identical entries in the list. The WinAPI prevents that. Therefore, I had to display multiple episodes differently. It may look a bit unusual at first, but it's not a problem to use. Here's a screenshot from the development phase:

    MB_1.jpg


    The =_0 or =_1 (or =_2 or =_3 or,...) is used to differentiate. This way, you can edit any number of episodes in one file without having to create (and, above all, display) 10 or 20 input fields on suspicion. Furthermore, the list structure has been significantly accelerated as a result of this revision.

    For both series and episodes, the exact date is now displayed and used instead of just the year.

    MB_2.jpg


    MB_3.jpg


    Something's changed with the movies, too.

    The movies now use the exact date instead of just the year.

    MB_4.jpg


    And you can now also customize the description for the movie collections.

    MB_5.jpg


    Additionally, metadata for multiple videos for a movie (CD1, CD2, etc.) is now displayed and can also be edited. This didn't work before. Since I don't have any split videos myself (there's the "Combine Videos" module for that), I never noticed it. It's also working now.

    There's also a completely new module, "Test Videos":

    MB_6.jpg


    Here, you select a folder containing several (many) videos. If you click "Let's Go," each video will play for a few seconds at the beginning, middle, and end to check if it's working properly. If you only have a few videos, you can easily do this manually in the respective editing module. However, if you have more videos, this function is very convenient.

    A lot has also changed under the hood. The grabber has been significantly accelerated and is noticeably more stable. The external programs have been updated. Especially with FFMpeg, only version V5 was used until now, as version V6 had caused massive problems. FFMpeg has now been updated to V7, which works perfectly again.

    The new version 1.3.1.10 is available for download on our website, as always. The link can be found in the first post. And now, have fun.
     

    Lehmden

    Retired Team Member
  • Premium Supporter
  • December 17, 2010
    12,596
    3,992
    Lehmden
    Home Country
    Germany Germany
    Hi.

    I unfortunately made a stupid mistake. While creating the video test function, I copied one line of code too many. As a result, after testing, the original videos are no longer deleted, but rather the videos just tested. This is obviously not what's intended. I've attached a new .exe that no longer contains this error. I should be able to build a new installer this evening or tomorrow. But until then, it's enough to replace the installed Media-Buddy.exe with the .exe included in the attachment. If you've already downloaded the installer, you don't have to download it again after replacing the .exe. Apart from that, the installers will be identical.

    I'm so sorry.
     

    Attachments

    • Media-Buddy.zip
      1.2 MB

    Lehmden

    Retired Team Member
  • Premium Supporter
  • December 17, 2010
    12,596
    3,992
    Lehmden
    Home Country
    Germany Germany
    Hi.

    I've now managed to upload a new installer to my blog. The internet was catastrophic again, so it took me countless attempts to finally upload the file. But it's here. I made a few small, mostly cosmetic fixes along the way. That's why there's actually a new version number, 1.3.1.11... You can download the new version, but you don't have to, as long as you've installed the executable from the previous post. The download is, of course, where it always is; see the first post.
     

    Lehmden

    Retired Team Member
  • Premium Supporter
  • December 17, 2010
    12,596
    3,992
    Lehmden
    Home Country
    Germany Germany
    Hi.
    While playing around with various 4k and HDR media, I noticed that some of the UHD videos on my TV only play at 1080p. I now also know why. My TV can only do 4k UHD up to 30Hz, which is certainly true for many other devices as well. Not a problem in itself, because as a rule 4k content has no more than 30 Hz. There is one exception, however, and that is the UHD content in the media libraries of German public broadcasters. Like everything there, these are at a 50Hz frame rate. My TV can't do that, so the players switch to 1080p@50Hz. But then the UHD is of no use to me, so FHD (i.e. 1080p) would also be sufficient.

    Actually, I strictly avoid fiddling with the resolution or frame rate of videos. That's why there are no settings for this in Media-Buddy. In this case, however, an adjustment of the frame rate is absolutely necessary. The 50 Hz is fake anyway. This simply uses each frame of a 25 Hz video twice to get to 50 Hz. That's why you don't have any loss if you recode the video to 25 Hz. There is now an option for this in Media-Buddy.

    Clipboard 1.jpg


    By default, this is not enabled. So if you have a playback chain that supports 4k@60Hz, you can leave it disabled. The option, if enabled, only reduces the frame rate for 4K videos and only if they have a frame rate above 30 Hz. Everything else, including the vast majority of UHD content, remains completely unaffected. Unfortunately, the only way to do this is to recode it. Unfortunately, you cannot change the FPS when remuxing. Therefore, all corresponding content is recoded, even if it would otherwise not have to be converted.

    As mentioned, this primarily applies to things like "The Swarm", "The Lord of the Rings - The Rings of Power", "Weiss & Morales", "Concordia - Deadly Utopia" and other series that are/were available in UHD quality in German public media libraries.

    There were also a few bug fixes and FFMpeg was updated to version 8. MKVToolNix has also been updated, to V 93.

    The new version 1.3.1.16 will be available for download later today, wherever it can always be found (see first post here). It's currently being uploaded, but it always takes forever for me.
     

    Lehmden

    Retired Team Member
  • Premium Supporter
  • December 17, 2010
    12,596
    3,992
    Lehmden
    Home Country
    Germany Germany
    Hi.
    There is something brand new from Media-Buddy... I am currently rewriting Media-Buddy from the ground up with the help of AI—and this time, it is being built to be completely platform-independent. For this reason, Media-Buddy V2 is being developed in Python. Python is nearly ideal for creating cross-platform applications using an accessible, easy-to-understand language. It will still be quite some time before the first public test version is ready, but several features familiar from V1 are already functional. Most of these have not simply been carried over; they have been modernized, both technically and functionally. As always, users will be able to configure all of these "new" features themselves.

    For instance, various Dolby Vision profiles are fully preserved during processing. With profiles 8.1 and 8.4, this can be achieved (almost) losslessly, even when re-encoding the video. For profiles 5, 10, and 20, however, this is only possible via "stream copy"—meaning the video codec or file size cannot be altered. If such changes are nonetheless selected, the program will override them to ensure the resulting video remains functional. A special case is profile 7 (typically found on UHD Blu-rays), which consists of multiple layers. If you wish to retain all layers (such as the FEL—Full Enhancement Layer), you cannot re-encode the video. However, if an 80 GB Blu-ray rip is simply too large for your collection, you can convert profile 7 to profile 8.1 and then re-encode the video to a much smaller size. While this does not preserve the complete Dolby Vision experience, it comes quite close using profile 8.1. The user can choose whether to keep profile 7 as is or convert it to 8.1; the program handles everything else automatically. Furthermore, Dolby Vision profile 20 presents a unique quirk: it is incompatible with the Matroska container, meaning such videos cannot be saved as .mkv files. Should Media-Buddy encounter one of these extremely rare files, it will automatically use the .mp4 container, which is fully compatible.

    Quality settings have been updated to a much more user-friendly 7-level system. Users no longer need to understand technical terms like "CQ24"; they simply select the quality level they prefer, and the program automatically determines the appropriate settings for that level based on the codec being used. Furthermore, the software provides a preliminary estimate to warn you if the resulting file might end up larger than the original—an outcome you generally want to avoid. With a fixed quality setting, this can indeed happen, leading to unnecessarily large files; after all, it is technically impossible to achieve "better" image quality than the original through re-encoding. In such cases, the selected quality level is automatically adjusted downward to prevent the creation of an unnecessarily large video. To help you determine which quality level suits your needs, there is a built-in test feature that re-encodes segments of your source videos at various quality levels and saves them side-by-side. This allows you to experiment and find the quality level that is sufficient for you, without generating excessively large files. It is best to try this out for yourself, as the perception of quality is highly subjective and significantly influenced by your own hardware. What might look "perfect" to me could appear as a "blurry mess" to you (or vice versa). It also does not matter whether you use x264 or HEVC_NVENC as the output codec; the resulting video will consistently maintain roughly the same level of image quality. While different codecs will naturally result in files of varying sizes, the most important aspect—the image quality—remains highly consistent.

    There are also new developments when it comes to handling high-quality audio tracks. If you have a DTS:X or Atmos audio track, you cannot normalize it or apply dynamic range compression without losing the associated metadata. In such cases, Media-Buddy can—if desired—generate two separate audio tracks: an "everyday" track that has been normalized, alongside the original, unaltered high-resolution track.

    The scrapers (used to fetch metadata from TVDB, TMDB, and Fanart.tv) have also been overhauled and modernized. For instance, if a description is not available in German—or whichever language the user has selected—it will now be automatically translated, provided that previous attempts to retrieve it from various sources (TVDB, TMDB, etc.) have failed. The system first checks TVDB; if no German description is found there, it proceeds to check TMDB. If nothing suitable is found there either, it retrieves the English description and translates it automatically. This ensures that the user always receives a description in their preferred language (provided they have enabled the translation feature).

    All of this is already functional and tested. The next step now requires the GUI. To that end, the first window is currently functional and nearing completion:

    V2_10.jpg


    All buttons and "expandable" sections are already functional; this is no longer just a mockup. However, the actual underlying logic—the specific actions these elements are intended to trigger—has not yet been fully implemented. You can already use the "Search" button to select the relevant folders, which then appear in the input fields (as shown in the screenshot). If you click "Let's Go," however, a notification appears stating that the functionality has not yet been implemented.

    That is the current state of development. I am very excited to test the initial features in day-to-day use. So far, all CLI tests have been successful. The source code will be made available on GitHub later on; however, that is not yet possible, as I first need to find a way to "hide" my API keys so that they cannot simply be read from the source code. Doing so would open the door to misuse and would likely lead to the keys being blocked very quickly...
     

    Users who are viewing this thread

    Top Bottom