View Full Version : MediaInfo.NET


stax76
15th September 2019, 08:50
MediaInfo.NET is a windows application that shows info about media files.


Website

https://github.com/stax76/MediaInfo.NET

https://i.postimg.cc/0Q3RNTMD/image.png

Klaus1189
15th September 2019, 22:20
Thanks, I check it out.

ChaosKing
15th September 2019, 22:51
Looks nice. I didn't know mediainfo had an advenced mode, now I do :D

Groucho2004
15th September 2019, 23:21
I didn't know mediainfo had an advenced modeIt doesn't. I assume that by "advanced" he means the "Complete" option that can be passed to the Mediainfo API interface which will extract all available info from a media file.

stax76
15th September 2019, 23:21
In staxrip there is a context menu where you can toogle user/developer view, I don't know how it's named and used in the original GUI.

Raw view shows what property name you pass to the API and what value you will get for this property, it looks like this:


General

CompleteName : D:\Samples\Big Buck Bunny.mkv
Format/String : Matroska
Format_Version : Version 4
FileSize/String : 1.56 GiB
Duration/String : 10 min 34 s
OverallBitRate/String : 21.2 Mb/s
Encoded_Application/String: Lavf58.20.100
Encoded_Library/String : Lavf58.20.100
ErrorDetectionType : Per level 1

Video

ID/String : 1
Format/String : VP9
CodecID : V_VP9
Duration/String : 10 min 34 s
Width/String : 3 840 pixels
Height/String : 2 160 pixels
DisplayAspectRatio/String: 16:9
FrameRate_Mode/String : Constant
FrameRate/String : 60.000 FPS
ColorSpace : YUV
Language/String : English
Default/String : Yes
Forced/String : No
colour_range : Limited
colour_primaries : BT.709
transfer_characteristics : BT.709
matrix_coefficients : BT.709

Audio

ID/String : 2
Format/String : AAC LC
Format/Info : Advanced Audio Codec Low Complexity
CodecID : A_AAC-2
Duration/String : 10 min 34 s
Channel(s)/String : 6 channels
ChannelLayout : C L R Ls Rs LFE
SamplingRate/String : 48.0 kHz
FrameRate/String : 46.875 FPS (1024 SPF)
Compression_Mode/String : Lossy
Title : ISO Media file produced by Google Inc. Created on: 12/12/2018.
Default/String : Yes
Forced/String : No



The normal view looks different:


General

Complete name : D:\Samples\Big Buck Bunny.mkv
Format : Matroska
Format version : Version 4
File size : 1.56 GiB (1601 MB)
Duration : 10 min 34 s
Overall bit rate : 21.2 Mb/s
Writing application : Lavf58.20.100
Writing library : Lavf58.20.100
ErrorDetectionType : Per level 1

Video

ID : 1
Format : VP9
Codec ID : V_VP9
Duration : 10 min 34 s
Width : 3 840 pixels
Height : 2 160 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 60.000 FPS
Color space : YUV
Language : English
Default : Yes
Forced : No
Color range : Limited
Color primaries : BT.709
Transfer characteristics : BT.709
Matrix coefficients : BT.709

Audio

ID : 2
Format : AAC LC
Format/Info : Advanced Audio Codec Low Complexity
Codec ID : A_AAC-2
Duration : 10 min 34 s
Channel(s) : 6 channels
Channel layout : C L R Ls Rs LFE
Sampling rate : 48.0 kHz
Frame rate : 46.875 FPS (1024 SPF)
Compression mode : Lossy
Title : ISO Media file produced by Google Inc. Created on: 12/12/2018.
Default : Yes
Forced : No

stax76
17th October 2019, 08:17
2.0 is out, features:

- High DPI support
- A search/filter feature
- A tab bar showing each track in a dedicated tab
- Move to the next and previous file of the folder
- Raw view to show parameters as used in the MediaInfo API

Does also Install/Uninstall.

https://github.com/stax76/MediaInfo.NET

https://raw.githubusercontent.com/stax76/MediaInfo.NET/master/Main.png

BetA13
17th October 2019, 19:14
nice....
I think im using it instead of mediainfo now..

Is it possible to make a dark theme? Or maybe possible to let the user decide wich background/font color they want...
I cant stand the White Background, since im using mediainfo quite often, it hurts my eyes when using it longer...

Besides that, i love it.. Its more clean, a bit more Modern. I approve :)

Best Regards...

stax76
17th October 2019, 22:10
It's probably not easy, instead of trying to theme WinForms like MusicBee does it might be more sane redoing it completely in WPF, I would probably need 2-3 days to get it as polished as it is now.

I'm not that much a dark theme user myself. I use dark theme only in VS code because it's the default, I've not even enabled it in mpv.net even though it's perfectly capable. Probably I should try the dark theme in Visual Studio as I spent much time using it.

If people request it I might do it but if the project gets little feedback and few stars then I might just be wasting my time. Feedback and stars are a motivation for me, there is much feedback for staxrip because video encoding is an extremely complex task and people always wonder how things can be done, and there are the bugs of course, Revan and me don't see many stars these days but it's OK especially because many people express much love for staxrip, I've seen many awesome appreciation posts and mails, I also got many donations in the pre streaming era.

mpv.net on the other side gets its amount of stars, when I'm working on new features and improvements it gets 5-10 stars per week, it tells me that I'm doing something useful and that I'm not alone being a passionate mpv user. Feedback was very sad in the beginning but now it's perfect, thank you for supporting it in the beginning and to everybody who supports it.

Stars, likes and popularity in general don't tell the full truth though, there are many brilliant people and heroes not many people seem to recognize. Some of my past and present heroes like D.I.T.C., B-Boy Physicx or Meg Myers are not well known. Some of my favorite music has less than 100 likes:

https://www.youtube.com/watch?v=UzTHLHu1Qb0&list=PLnVfFuh_eWkHea5HbrAxu8PaL4frxuiA7&index=5&t=0s

Sounds 6,486,027,521 times better than Luis Fonsi to me, I don't understand Spanish, GANGNAM STYLE is OK though...

ChaosKing
17th October 2019, 23:15
I'm not that much a dark theme user myself. I use dark theme only in VS code because it's the default, I've not even enabled it in mpv.net even though it's perfectly capable. Probably I should try the dark theme in Visual Studio as I spent much time using it.

Wouldn't simply changing the background color be enough in this case? (+ adding darktheme item to context menu)

stax76
17th October 2019, 23:59
Wouldn't simply changing the background color be enough in this case? (+ adding darktheme item to context menu)

There are some details like the 'Search' hint done with an API call or the Clear button, in the end you would probably end up with much custom drawing which is rather unpleasant to do and replacing controls.

WPF had it's issues in the beginning, that's why I didn't use it early but now it's really that much better than WinForms, it's like comparing cmd with powershell, massive improvement. I should have used it earlier and I bet the musicbee author regrets it as well.

In staxrip most dialogs are code generated just to avoid dealing with WinForms, yesterday I was thinking how am I going to let users edit settings and had all kind of crazy ideas until I settled for an approach, something I maybe have learned from mpv and also use in Open with++ (INI conf thing). I already had the WinForms designer open and then realized I can't do this anymore (High DPI is such an amazing pain in the ass with WinForms), ironic thing is Microsoft has currently one of it's best engineers (that guy from the roslyn team) working to port the WinForm designer to .NET Core, I don't know why they are doing this.

edit:

I wish it would be easier to use HTML, Microsoft is not helping much with that and Electron is too heavy for small tools, maybe there are ways I did not figure out yet.

edit2:

@BetA13

Thanks for the positive feedback btw.

ChaosKing
18th October 2019, 09:06
I already had the WinForms designer open and then realized I can't do this anymore (High DPI is such an amazing pain in the ass with WinForms), ironic thing is Microsoft has currently one of it's best engineers (that guy from the roslyn team) working to port the WinForm designer to .NET Core, I don't know why they are doing this.

edit:

I wish it would be easier to use HTML, Microsoft is not helping much with that and Electron is too heavy for small tools, maybe there are ways I did not figure out yet.


Yeah I have the feeling .net core will be unnecessary complex (and fat) under the hood, I mean look at the ported apis count https://github.com/dotnet/announcements/issues/130

I only see QT5+QML or the new thing by google "Flutter" as an alternative to electron. Flutter focuses on mobile, but they saw that it also works for desktop and even web. Scroll down for pics https://medium.com/flutter-community/flutter-for-desktop-create-and-run-a-desktop-application-ebeb1604f1e0

And there is also https://github.com/chromelyapps/Chromely for cross plattform .net+html apps.

stax76
18th October 2019, 10:18
Yeah I have the feeling .net core will be unnecessary complex (and fat) under the hood, I mean look at the ported apis count https://github.com/dotnet/announcements/issues/130

So far I know only the basics of .NET Core, usually I watch Microsoft's videos when they release new stuff. Wrote a small tool called ShellNew (https://github.com/stax76/ShellNew) and ported some of my private tools. For something serious like porting mpv.net I think it's better to wait until it becomes part of the OS or tree shaking is available, I don't like having larger binaries than necessary and I don't want to tell users that they have to install the runtime, I remember how that went when staxrip was first released 2002.

QT is notoriously difficult to install and setup I think, gave up two times and would probably need days. If I really wanted to do something portable it would be definitely under consideration, but there are numerous options.

About Flutter I don't know, does the world really need another language (works only with Dart I think), does this language bring something new to the table (some question for go) and will it be a successful language. It would also mean using a new IDE and editor since Google prefers Intelli and I really love my VS/VS Code.

I'm not sure I read about Chromely before, I've bookmarked it now.

GUIs are fine but at the moment I really like to play with PowerShell and the new Windows Terminal. :)

ChaosKing
18th October 2019, 10:28
Dart is very close to c#. Flutter and VS Code are best friends, most people prefer it this way.
And there is another option for small apps: powershell GUI! Idk if it's a good or a bad thing to do. There is also a gui editor for it: poshgui

p.s. ShellNew is nice. Just remove some useless entries.:thanks:

stax76
18th October 2019, 10:54
Good VS code support makes it more interesting for me. Web based GUI designer for PowerShell and WinForms looks like a fun project, why not.

StainlessS
18th October 2019, 11:24
Just a little spanner in the works,
For a language (I got it, aint yet tried it) that is Open Source, Delphi/Pascal compatible, full RAD (Rapid Application Development), and cross platform (write once, compile anywhere),
Lazarus (IDE, Includes Free Pascal) could well be worth spending a little time on (looks well impressive).

Lazarus is a free cross-platform visual integrated development environment (IDE) for rapid application development (RAD) using the Free Pascal compiler.

Software developers use Lazarus to create native-code console and graphical user interface (GUI) applications for the desktop, and also for mobile devices,
web applications, web services, visual components and function libraries for a number of different platforms, including Mac, Linux and Windows.

An application created using Lazarus on one platform can generally compile and execute on any platform for which a Free Pascal compiler exists.
For desktop applications a single source can target Mac, Linux, and Windows, with little or no modification.
An example is the Lazarus IDE itself, created from a single code base and available on all major platforms including the Raspberry Pi.

WikiPedia:- https://en.wikipedia.org/wiki/Lazarus_(IDE)

Home Page:- https://www.lazarus-ide.org/

Google:- https://www.google.com/search?client=firefox-b-d&sxsrf=ACYBGNQhsWvHHt0wMk2y2H7yGRkFIFqlQA%3A1571393358534&ei=To-pXb-VIIyJ1fAPscW66A8&q=lazarus+delphi&oq=lazarus+delphi&gs_l=psy-ab.3..0l4j0i22i30l6.12530.14751..15122...0.0..0.243.930.1j5j1......0....1..gws-wiz.......0i67j0i131.Q-O2KZQ34Ak&ved=0ahUKEwi_9L-3yKXlAhWMRBUIHbGiDv0Q4dUDCAo&uact=5

It is (IMHI) only a matter of time before M$ gets flushed down the pan [or at least Windows], having a cross platform option aint such a bad idea,
and Python looks also to be a worthwhile way to invest ones time. (even M$ seems to be investing time in other OS's [the writing is on the wall]).

EDIT: Active delevopment, two updates since May.

ChaosKing
18th October 2019, 11:51
But isn't Delphi/Lazarus basically like WinForms? Custom Controls and styling is much more work?

stax76
18th October 2019, 12:08
I think it's better to look for a GUI toolkit that is xml/json based with hardware acceleration and device independent pixels, that's what all modern toolkits have in common, it's much easier to do layout, high dpi, dark theme and advanced/custom controls. MediaMonkey was using Delphi, and then they gave up in favor of HTML, I complained ten years with dozens of posts in their forum about their shitty high dpi support, finally had to migrate to MusicBee which is also WinForms based and has many high dpi issues but at least the main window has properly working skins.

StainlessS
18th October 2019, 12:10
Thanks Stax, Downloading MusicBee 3.3.7165, Released on August 15, 2019, For Win7/ Win8/ Win10.

stax76
18th October 2019, 18:40
If you are new to this kind of player you can also try MediaMonkey 5 (HTML based) and Dopamine (WPF based but no extensions).

StainlessS
19th October 2019, 07:36
Yeh, I got MediaMonkey a couple of weeks ago (the old ver$ I had was from about 200x),
I like current one best, out of about 10 I downloaded at the same time.
(I still kinda like QMP [Quintessential Music Player, old no longer developed], but its a bit buggy under W7+), still nothing
to touch Music Match Jukebox from long ago(about v7.0, before they messed it up).
Not tried MusicBee yet.

stax76
21st October 2019, 00:27
3.1 has a dark UI and a word wrap settings. It requires .NET Core 3.0 being installed.

https://github.com/stax76/MediaInfo.NET

BetA13
21st October 2019, 02:01
very nice, that was kinda quick. :)
Thank you very much for the "Dark Skin" support... Its very comfortable to read now.

At first i didnt get it to run, but was shure i did install the .NET Core Runtimes..
After some searching i learned that you need to install:

Quote:

Run desktop apps
Want to run an app that uses .NET Core on your Windows computer? Install both the .NET Core Runtime and the .NET Core Desktop Runtime.

After i installed both runtimes it started and worked.
Just thought i mention it if someone else has Problems starting it.


Ok, now a BUG i encountered..
MediaInfo.NET does not start in the correct Window size.
I think its best to show you.

https://i.imgur.com/ijiJmmI.png

I have no clue whats going on there.. It doesnt save the window size?
I did delete everything before using the new Version.
Using Win7 64bit..


Best Regards, Beta

stax76
21st October 2019, 02:30
The window size value is ten times more in the new version because of the new UI toolkit. Try this:

font = Consolas
font-size = 13
window-width = 700
window-height = 550
center-screen = yes
raw-view = yes
word-wrap = no

Windows 10 users can install Windows Terminal Preview which installs the new font Cascadia Code, looks like this:

https://i.postimg.cc/43zZVtRN/Untitled.png

BetA13
21st October 2019, 02:45
You are right :)
Thanks, it looks like its using pixel as width and height now..

It works now with the selected size.


Strangely i do not have those settings:

center-screen = yes
word-wrap = no

But indeed i really like a "Word wrap" since that was one of teh First things that came to my mind when opening an Media with it..
This isnt a Limitation to Windows 7, is it?

Anyway, Thanks a million, with or without Word wrap, this is now my new MediaInfo Tool... :)

Cheers

stax76
22nd October 2019, 12:28
New in v4.0 is:

- search highlighting
- summary shown
- left column is wider
- few other minor tweaks

Fun fact:

staxrip was the first dotnet app announced 2002 at doom9.

MediaInfo.NET is the first dotnet core app announced at doom9 I believe.

https://i.postimg.cc/y6tdNwx0/image1.png

https://i.postimg.cc/zXhfH0H6/image2.png

BetA13
22nd October 2019, 12:44
Thank you for the new Update... Great Work!!
I like the Tweaks on TOP in the "basic" view, Settings are also better now, very readable.. And teh search function with the Green markings, GREAT STUFF!! I love it :P

staxrip was the first dotnet app announced 2002 at doom9.

MediaInfo.NET is the first dotnet core app announced at doom9 I believe.
Very nice.. To be honest im quite enjoying your Stuff.. :)



If i might ask, the "word wrap" setting, is it integrated?
Its still not showing for me?

https://i.imgur.com/050wKTH.png

Best Regards...

stax76
22nd October 2019, 13:29
Thank you for the positive feedback. What you see in the settings dialog is the plain text content of the settings file which is created when it's missing, because the file was created with an old version settings added by newer versions don't show. I added the defaults on the web site:

https://github.com/stax76/MediaInfo.NET#defaults

Ideally there would be a real settings dialog with check boxes etc., problem is I don't have great experience with the UI framework, so it would take more time to build, I should probably create this dialog, maybe in the next release.

BetA13
22nd October 2019, 13:48
because the file was created with an old version settings added by newer versions don't show.

Thank you for explaining this, now i get it^^
No worries though :) ill whait for the next release..

stax76
22nd October 2019, 15:58
some info on dotnet:

The next release after .NET Core 3.0 will be .NET 5. The .NET Framework will be deprecated, and .NET 5 will be the only .NET going forward – hence the removal of the "Core" branding and skipping of version 4 to avoid confusion with the .NET Framework 4.x.

https://en.wikipedia.org/wiki/.NET_Core

Quote from Scott Hunter, Director Program Management, .NET

New applications should be built on .NET Core. .NET Core is where future investments in .NET will happen. Existing applications are safe to remain on .NET Framework which will be supported. Existing applications that want to take advantage of the new features in .NET should consider moving to .NET Core. As we plan into the future, we will be bringing in even more capabilities to the platform. You can read about our plans here.

staxrip should stay on .net framework as there is a risk with the form designer not working properly on .net core and there is also a risk with win 7 compatibility being worse on .net core.

mpv.net will likely be ported but maybe not so soon.

https://dotnet.microsoft.com/download/dotnet-core/3.0/runtime

stax76
23rd October 2019, 03:01
4.1

- encoder parameters have a nice presentation
- if the text has focus the caret is visible and key scrolling works

https://i.postimg.cc/0Q3RNTMD/image.png

ChaosKing
23rd October 2019, 10:19
Any plans on making it also available via https://chocolatey.org/packages? (it is a package manager for windows)
If not I can do it and maintaining it on chocolatey if you're cool with it.

stax76
23rd October 2019, 13:19
Yes I'm cool with it, thank you.

I had a feature requests for mpv.net and chocolatey but found it difficult to understand but meanwhile my powershell knowledge has significantly improved, maybe now I'm ready for it.

I realized the app has grown enough to clean up the code and add everything missing of what a solid app is supposed to have, working on a new version right now.

BetA13
23rd October 2019, 18:13
short quick question....

Are there Plans to add an Function to Export to an Text File?
This would be also a nice feature i think..

Greetings..

stax76
23rd October 2019, 20:58
Yes, I want to add it.

stax76
24th October 2019, 06:48
5.0
---

- changelog added to repo
- if no file is open message is shown
- file can be opened from menu: Open File...
- file can be saved from menu: Save File...
- exclude setting added to hide defined parameters
- encoding presentation can be disabled
- compact summary can be disabled
- file types for setup can be customized
- column width can be customized
- new settings dialog with proper UI controls and greatly improved usability
- some dialogs use task dialog instead of msg box
- about dialog added
- settings directory can either be AppData, Portable or Custom

https://dotnet.microsoft.com/download/dotnet-core/3.0/runtime

https://github.com/stax76/MediaInfo.NET

As far as I can tell the app is now complete. :cool:

NikosD
24th October 2019, 08:14
Hello Frank.

Just tried your utils today (MediaInfo.NET, ShellNew and Open++)

Having the "original" MediaInfo GUI registered in Windows File Explorer showing with a right click on a media file, your MediaInfo GUI doesn't show up with a right click on a media file, even after installing it from inside the app.
Only the original MediaInfo is present in right click context menu on a media file.

It seems that your MediaInfo GUI can only be registered for the unregistered extensions by any Media Player - I mean the "orphan" media extensions - while the original MediaInfo is always present, if you set it in its preferences.

BTW, have you found out a way to register all of the extensions supported by an app (e.g Chrome) with a single click and not one by one using Windows 10 (latest versions) ?

That would be a very useful util!

Also, for both your .NET Core apps (ShellNew and MediaInfo.NET) it would be useful a pop up message warning the user that both .NET Core v3.0 runtime and .NET Core v3.0 Desktop runtime must be installed, ideally with a direct hyperlink to download the installers :D

Or you can put the links in a ReadMe.txt file.

Because now it seems that they are simply not working.

Just my two cents...

stax76
24th October 2019, 13:53
Hello Nikos,

I got both, the extension based menu of the original app and the registry based menu of my app and both work, there is not much I can do other than suggesting to use Open with++.

BTW, have you found out a way to register all of the extensions supported by an app (e.g Chrome) with a single click and not one by one using Windows 10 (latest versions) ?

That would be a very useful util!

I don't understand what you mean with that.

Also, for both your .NET Core apps (ShellNew and MediaInfo.NET) it would be useful a pop up message warning the user that both .NET Core v3.0 runtime and .NET Core v3.0 Desktop runtime must be installed, ideally with a direct hyperlink to download the installers

Showing a message or executing any code is not possible without the Core runtime, I've put a link on the main web page, the release page and have added a readme file.

NikosD
24th October 2019, 19:34
I got both, the extension based menu of the original app and the registry based menu of my app and both work, there is not much I can do other than suggesting to use Open with++. I didn't use Open ++, I just did a right click on a video file after installing your app and I got only original MediaInfo option.
I don't understand what you mean with that. There are many apps like MPC-HC that support dozens of different types of files and can register themselves as the default app for all those file types (file extensions e.g .mp4 .mkv .ts .aac etc)
Last few versions of Win10 do not allow you to set MPC-HC as the default app for all those supported extensions by MPC-HC with just a single click.
Win10 allow you to set and register one by one the extensions supported by the app as the default program to open those extensions.
Showing a message or executing any code is not possible without the Core runtime, I've put a link on the main web page, the release page and have added a readme file. Understood.

stax76
24th October 2019, 19:52
There are many apps like MPC-HC that support dozens of different types of files and can register themselves as the default app for all those file types (file extensions e.g .mp4 .mkv .ts .aac etc)
Last few versions of Win10 do not allow you to set MPC-HC as the default app for all those supported extensions by MPC-HC with just a single click.
Win10 allow you to set and register one by one the extensions supported by the app as the default program to open those extensions.

It's known that Windows 10 has some protection, I can only tell you what mpv.net does, it uses the traditional keys with some new keys I found in the rusty mpv bat file, also some users gave me some hints which keys I was missing.

https://github.com/stax76/mpv.net/blob/master/mpv.net/Misc/Misc.cs#L61

https://github.com/stax76/MediaInfo.NET/blob/master/src/Program.cs#L60

Setup can be found in the mpv.net menu at : Tools > OS Setup

It features:

video file types registration
audio file types registration
image file types registration

and it has a button to bring you to the default apps dialog, that buttons calls the shell address:

ms-settings:defaultapps

https://betanews.com/2015/06/19/windows-10-tips-settings-control-panel/

NikosD
24th October 2019, 20:07
It's known that Windows 10 has some protection...
video file types registration
audio file types registration
image file types registration

and it has a button to bring you to the default apps dialog, that buttons calls the shell address:

ms-settings:defaultapps

https://betanews.com/2015/06/19/windows-10-tips-settings-control-panel/ Codec Tweak Tool could do that, but nowadays MS ceased the old control panel functionality of default apps and the new default apps functionality can't register all file types supported by the app at once.
I hoped you could do some magic and bring the old functionality to new Win10 :D

stax76
24th October 2019, 20:16
If you run the mpv.net setup and after that use the default apps dialog then I believe all extensions work, or at least it is trivial to make them work and you don't have to do that often, most apps are decent enough not to enable file type registration by default. I've not having problems with the new behavior, maybe it's not a bad thing that windows don't allow hijacking extensions without user confirmation, as far as I know this protection has not been cracked.

NikosD
24th October 2019, 20:48
...as far as I know this protection has not been cracked. I wouldn't call it protection, because it's not that apps do it on their own (which is bad) it's also that MS removed the option from user to do it as a choice, intensionally.
It's the old good MS forcing things on users that they don't want and removing options that they do want.
If there is a portable version of mpv I could try it.

stax76
24th October 2019, 21:24
I believe there is some hash value only Windows can create so it can be called protection.

mpv does not have an installer, you can get it here:

https://mpv.io/installation/

Docs are here:

https://mpv.io/manual/master/

It takes some commitment to understand and use it successfully.

My frontend is still mpv and makes few things easier:

https://github.com/stax76/mpv.net

NikosD
25th October 2019, 06:19
I believe there is some hash value only Windows can create so it can be called protection. You used the word protection literally, I thought you said it like MS is trying to "protect" access to massive registration of file types from unauthorized apps.

I will use MPV later today.

Thank you.

NikosD
25th October 2019, 08:19
Well, the batch script of installation of various extensions for MPV certainly doesn't work for registration of those extensions.
It just opens the Default Apps of Win10, so it can't bring back the old functionality of previous control panel.
Now, regarding the MPV and yours MPV.NET...well...it's a weird, interesting player but with a 228 pages manual :D

stax76
25th October 2019, 09:34
For testing a player it's maybe better to keep the file associations for the current player and test it with 'Open with', or 'Open with++' or drag and drop or something like that.

Maybe you need to run the script with elevated privileges, if you have both issues with MediaInfo.NET and the mpv script then maybe there is something wrong with your system or you are doing something wrong.

If you configure mpv then you need to search and navigate the manual, the best way doing this is using the single page HTML manual so you can do a full text search using the browser, it has 7000 lines, I've never heard that somebody had regrets learning it, you not only learn how to use mpv, you learn about software in general.

NikosD
25th October 2019, 13:29
Maybe you need to run the script with elevated privileges, if you have both issues with MediaInfo.NET and the mpv script then maybe there is something wrong with your system or you are doing something wrong. But I thought we had already agreed that if you have a media player e.g MPC-HC as the default app for media files, then it's impossible for newest versions of Win10 to allow you to register those extensions to another player all at once.
I just gave that script a chance, but it didn't work obviously.
It registered itself only to the orphan extensions, just like MediaInfoGUI.NET
If it's impossible to bring back the old functionality of the control panel, then the only solution would be to register a media player as default media player and leave Windows and not you to decide which extensions belong to that player.
I haven't done this yet to be honest, I was looking for the old functionality even as a hack.
If you configure mpv then you need to search and navigate the manual, the best way doing this is using the single page HTML manual so you can do a full text search using the browser, it has 7000 lines, I've never heard that somebody had regrets learning it, you not only learn how to use mpv, you learn about software in general. I think I'll stick to MPC-HC.
I have even abandoned my old love of PotPlayer for MPC-HC.
Not so much free time for reading manuals these days!

stax76
25th October 2019, 15:31
It works but you need to change the default app after the registration in Windows 10 at: Apps > Default Apps

mpc-be automatically opens the default apps page after the registration by calling ms-settings:defaultapps, mpv.net has a button to open it in its OS Setup dialog.

For MediaInfo.NET it's not necessary as it doesn't change the default app but only add a verb (menu item).

NikosD
25th October 2019, 19:10
After running the script and changing the default video/audio player to mpv, I got only 18 extensions supported by app but not registered to the app.

I wrote only, because MPC-HC leaves a lot more unregistered extensions than those it supports.

Yours mpv.net leaves only 8 unregistered extensions but I think it supports less extensions than mpv.

MPC-HC supports a lot more extensions than both mpv and mpv.net.

BTW, mpv is a modern player supporting D3D11VA video decoding and your version of mpv.net is user friendly too.

While waiting for the next version of MPC-HC with - hopefully - embedded support of mpcVR renderer, I will keep mpv.net as my default player.

stax76
27th October 2019, 17:18
5.1
---

- new setting 'Theme' added with 'Light', 'Dark' and 'System' option,
theme colors are not hard coded but defined in Settings.xml
- fix for window starting in background on very first start
- file association uninstall scans now all extensions and not only
the ones that are defined in the settings
- encoding settings are now alphabetically ordered
- compact summary is no longer limited to raw view, it's now
also available in normal view

https://dotnet.microsoft.com/download/dotnet-core/3.0/runtime

https://github.com/stax76/MediaInfo.NET

stax76
28th October 2019, 21:55
I did a last polishing today before work on staxrip and mpv.net continues.

5.2
---

- in the settings dialog the layout was improved,
the font picker was replaced with a drop down and
a link was added to open the settings folder
- using raw view, MediaInfo is now queried only once
instead of twice which is marginally more efficient
- on startup MediaInfo.NET registers itself at
HKCU\Software\Microsoft\Windows\CurrentVersion\App Paths\
which enables third party apps to find and start MediaInfo.NET
- a assembly title attribute was added so the shell will use
MediaInfo.NET instead of MediaInfoNET (for instance in the
Explorer 'Open with' menu)
- the website was improved and added to the context menu
- the about dialog shows now the MediaInfo version
- all message boxes were migrated to use the TaskDialog API
which has a improved presentation and copy and support
links in case of an error


screenshot of the improved settings dialog:

https://i.postimg.cc/xTY4yYGb/Screenshot-44.png


Next staxrip build will integrate MediaInfo.NET.


runtimes:

https://dotnet.microsoft.com/download/dotnet-core/3.0/runtime


website:

https://github.com/stax76/MediaInfo.NET

stax76
30th October 2019, 16:05
5.3
---

- in normal view language names are now shown instead of two letter language codes
- MediaInfo API spelling errors were corrected
- duplicated entries are now removed

- critical fix: file associations did not work when UserChoice key was defined


runtimes:

https://dotnet.microsoft.com/download/dotnet-core/3.0/runtime


website:

https://github.com/stax76/MediaInfo.NET

redbtn
1st November 2019, 18:29
Oh, now it's super cool! Thank you!
Switch between modes is great idea!

stax76
1st November 2019, 19:10
You're welcome!

stax76
2nd December 2019, 02:19
5.4.0.0
-------

- new: the track navigation tab bar was only showing the format family
like DTS, now it's showing the exact format like DTS XLL
- new: update check, must first be enabled in settings
- new: update feature, requires PowerShell 5 and curl,
an up to date Windows 10 system has both included


runtimes:

https://dotnet.microsoft.com/download/dotnet-core/3.0/runtime


website:

https://github.com/stax76/MediaInfo.NET


https://i.postimg.cc/B6C9gJB9/Untitled.png

OAKside
8th December 2019, 02:29
MediaInfo.NET is just incredible, thank you again very much stax76! Drag and drop. Customizable (fonts, dark mode, etc). Beautiful. Works great in Windows "Send To" menu. Previously using MediaInfo "lite" (by Atak Snajpera).

Nitpicks: The "menu" section seems formatted oddly: Chapter times read "00[30 spaces]:[1 space]00:00.000" but perhaps should be "00:00:00.000" with no spaces. Then chapter names could be aligned nicely like rest of text. Also: there in no mention of "menu" in top summary, maybe by design though. And: (at risk of being slapped) top summary for "text" is not labeled "T" but "S" (for subtitle).

stax76
7th March 2020, 16:07
Thanks for the awesome feedback, new build should have everything covered!

Please note that it's a 32bit only app now.

https://github.com/stax76/MediaInfo.NET/releases/tag/5.5.0.0

https://dotnet.microsoft.com/download/dotnet-core/current/runtime

JKyle
7th March 2020, 20:21
Please note that it's a 32bit only app now.

Does it mean that I need to install .NET Core Runtime x86 along with x64?

I updated .NET Core Runtime x64 to the latest one, but 5.5.0.0 doesn't seem to launch at all. I can't see any instance of MediaInfo.NET on Task Manager.

I rolled back to the previous version (5.4.0.0), and it works nicely (without x86).

stax76
7th March 2020, 21:17
Does it mean that I need to install .NET Core Runtime x86 along with x64?

Yes, I know it's a mess, I even considered to back port it to .NET Framework. I also don't know about compatibility between Core 3.0 and Core 3.1. The point of using Core in the first place was to prepare for the future and in December the future will be here, I needed to learn this new platform. Doing separate builds for 32 and 64 bit is cumbersome, in particular it makes the auto update feature uglier than it needs to be, I like the simplicity of the powershell code, it's like ten lines.

Generally .NET code can be built against x64, x86 or Any Platform which works on both due to the just in time compiler, the MediaInfo library is native though so it's either x64 or x86.

WebAssembly which can also be used outside the web is interesting because it's fast but also using just in time compilation so works on any platform.

Core or .NET 5 as it will be called later this year has also a mode where the entire runtime is included and it appears as a regular application that does not need a runtime, right now the files are too big, I think it involves a complicated process called tree shaking and will be one of the most valuable features of the new platform once it's ready.

Going x86 only is a way to achieve simplicity because Windows supports both side by side and for certain types of apps it's not making a real difference.

stax76
7th March 2020, 21:54
I've indeed missed updating the target Core platform from 3.0 to 3.1 and just made another release:

5.5.0.0 -> Core 3.0 x86
5.6.0.0 -> Core 3.1 x86

https://github.com/stax76/MediaInfo.NET/releases

https://dotnet.microsoft.com/download/dotnet-core/current/runtime

JKyle
7th March 2020, 21:54
Thank you for the quick and kind reply.

Yes, 5.5.0.0 (and 5.6.0.0) works nicely after installation of .NET Core 3.1 Runtime x86.

I think most x64 users will easily ignore this requirement unless they read this thread or visit the official github page.

Thanks again. :)

gpower2
10th March 2020, 19:12
Hey! Thanks for your great work!

I have also made a small MediaInfo in .NET that detects runtime the running platform and loads the correct MediaInfo library, allowing for targeting Any CPU.

https://github.com/Gpower2/gMediaTools/blob/master/gMediaTools/MediaInfo/gMediaInfo.cs

I know you prefer VB, but maybe this will give you some ideas about your project. ;)

PS. It is based on an old MediaInfo wrapper from MeGUI project. ;)

stax76
10th March 2020, 20:30
Hello gpower2,

C# is OK (MediaInfo.NET and mpv.net are written in C#).

Sometimes it greatly helps to look at other peoples code to understand how it works and how other people do things.

Typically, I do things my own way however.

Native MediaInfo.dll is used in 4 of my projects:

https://github.com/staxrip/staxrip/blob/master/General/MediaInfo.vb

https://github.com/stax76/mpv.net/blob/master/mpv.net/Native/MediaInfo.cs

https://github.com/stax76/MediaInfo.NET/blob/master/src/Generic/MediaInfo.cs

https://github.com/stax76/Get-MediaInfo/blob/master/MediaInfoNET/MediaInfoNET.cs

I've not really analyzed your code but it's probably inefficient since it uses GetProcAddress all over the place instead of the idiomatic .NET way DllImport, I could be wrong because I did not benchmark it but if you disassemble MS code with dotPeek (frequent task of an experienced .NET dev) then you see that it uses almost always DllImport.

It seem to call GetProcAddress for every request instead of only one initialization, that is inefficient.

gpower2
10th March 2020, 21:17
Hmmm, you actually gave me an idea of caching the Delegates instead of constantly resolving their address, thanks for that!

Unfortunately I don't think you can use DllImport when you want to do a runtime bidning to different Dlls unknown to compile time.

Of course using Dllimport would be the preferred way, if only it could work in this case! :P

PS. You could also use ILSpy (open source) ;)

stax76
10th March 2020, 21:26
As far as I know LoadLibrary most importantly first looks in the startup folder and after that in System32 but it's not a problem to use DllImport if your DLL is located somewhere else, just call LoadLibrary once before the DllImport method, that's how my MediaInfo code works, see here:

https://github.com/staxrip/staxrip/blob/master/General/MediaInfo.vb#L12

If I had written this code today I probably would have checked the return value for an error even though it's not having a real benefit.

gpower2
10th March 2020, 21:37
I don't think LoadLibrary, which is a kernel32.dll method, is related to DllImport, which is managed class.

I actually use the LoadLibrary in my code too, I just went full dynamic and use GetProcAddress from the library handle returned from LoadLibrary.

BTW, I just pushed the cache implementation for the function delegates and it works like a charm! :)

stax76
10th March 2020, 21:57
The CLR sits on top of the OS, under the hood the DllImport implementation will just call LoadLibrary, try it and you will see that it works because it has always works for me and I just found out now but instead of calling LoadLibrary this will much likely work as well:

SetDllDirectory and AddDllDirectory

stax76
10th March 2020, 22:39
There is also DefaultDllImportSearchPathsAttribute (https://docs.microsoft.com/de-de/dotnet/api/system.runtime.interopservices.defaultdllimportsearchpathsattribute?view=netframework-4.8) so there are various ways to achieve the same thing, some more elegant than others, performance wise your way should be fine, for performance critical code resolving the address should definitely be done only once.

stax76
4th April 2020, 18:46
There was a new MediaInfo version, so I made a new release of this little project.

I've integrated another small project of mine called Get-MediaInfo, it's a complete MediaInfo PowerShell solution, in MediaInfo.NET there is a new menu item 'Folder View' which runs the powershell command:

. Get-MediaInfo.ps1; gci 'folder' | gmi | ogv

It looks like so:

https://github.com/stax76/Get-MediaInfo#examples

I hope it works, software dependencies and distribution can be very difficult!

https://github.com/stax76/MediaInfo.NET#installation

People that already use MediaInfo.NET may try to update using the built-in update feature found in the menu, that is powershell powered as well and I hope that it works too.

stax76
11th April 2020, 12:07
Version 6.0.0.0 runs on good old .NET Framework 4.8, it's compiled as Any CPU so runs on x64 and x86 but the included native MediaInfo.dll is x64 so x86 users have to replace MediaInfo.dll.

- there was an issue with the feature that allowed to customize the settings directory, so I removed this feature
- Get-MediaInfo 3.0 is included, it fixes few bugs, it's used for the folder view
- the folder view uses now an internal in process PowerShell so no terminal is shown

The outlook for staxrip is:


- internal MediaInfo GUI replaced with external MediaInfo.NET app
which was ported to good old .NET Framework 4.8. StaxRip includes only one MediaInfo.dll
and it's located in the MediaInfo.NET folder and there is also only one Get-MediaInfo.ps1 also
located in the MediaInfo.NET folder. The folder view now uses the internal PowerShell instead
of showing a terminal. Get-MediaInfo.ps1 was updated to 3.0.


https://github.com/stax76/MediaInfo.NET

stax76
11th April 2020, 21:15
Unfortunately there was a critical issue in 6.0.0.0, it's fixed in 6.1.0.0.

https://github.com/stax76/MediaInfo.NET/issues/7

https://github.com/stax76/MediaInfo.NET/releases

OAKside
28th April 2020, 02:14
- there was an issue with the feature that allowed to customize the settings directory, so I removed this feature


I was wondering why settings were reset (was using "portable"). No problem, awesome new right-click menu, pointed me to proper directory. Thanks again for your work on MediaInfo.NET (and of course StaxRip), honestly a pleasure to use, beautiful and customizable (esp. dark mode, windows size, font).

Request: Is it possible to format the "Menu" section differently? This (https://i.imgur.com/w5h7Q0B.jpg) is what mine looks like (MediaInfo formats fine, like this (https://i.imgur.com/tx2POAH.jpg)).

stax76
28th April 2020, 16:01
Thanks for the great feedback, there is a new release with the only change fixing this bug, please try the built-in update feature.

stax76
4th May 2020, 04:24
6.3.0.0 is a bug fix release.

https://github.com/stax76/MediaInfo.NET

hajj_3
4th May 2020, 11:43
does this have anything to do with the regular mediainfo program, do you use their .dll file to get all the media information and use your app as the front end? Do you have a binary of this app and your Open with++ app?

stax76
4th May 2020, 14:23
Does this have anything to do with the regular mediainfo program

yes


do you use their .dll file to get all the media information and use your app as the front end?

yes


Do you have a binary of this app and your Open with++ app?

yes, on the release page but before you go to the release page please read the full main page first. Often there is important information like a description what the application is about, system requirements and install instructions and also other useful information like a list of features or screenshots.

hajj_3
4th May 2020, 16:09
Mediainfo.net uses 46.7MB ram whereas the latest mediainfo uses only 5.1MB, that seems quite high for an app like this?

When registering the app in the right click menu of file explorer it shows up as "mediainfo" and without a logo. You could do with renaming it Mediainfo.NET and possibly adding a logo.

Adding an option in the settings to create an icon for the application in the start menu would be nice.

stax76
4th May 2020, 16:37
Other people might not like the .NET caption or the icon, with Open with++ you have full control and it allows you to learn the command line which is a very powerful concept.

MediaInfo.NET uses 35 MB here for a simple file, it's not really that much, a modern XAML based GUI uses more memory like a classic Win32 GUI.

OAKside
6th May 2020, 08:17
Request: Is it possible to format the "Menu" section differently? This (https://i.imgur.com/w5h7Q0B.jpg) is what mine looks like (MediaInfo formats fine, like this (https://i.imgur.com/tx2POAH.jpg)).

Thanks for the great feedback, there is a new release with the only change fixing this bug, please try the built-in update feature.

Holy cow, that was quick. Tested, indeed fixed! Looks great now! :thanks: (Forgot to try update feature in my delirium, ha, I need to check it out.)

redbtn
7th May 2020, 12:22
Other people might not like the .NET caption or the icon, with Open with++ you have full control and it allows you to learn the command line which is a very powerful concept.
Yeah, no need to add ".NET" or/and icon, it's perfect as is. Thank you for great apps!

stax76
22nd May 2020, 15:49
6.4.0.0

- Update and Folder View feature did not work on systems with restricted PowerShell execution policy.

stax76
13th December 2020, 06:35
v6.7.0.0

- New icon
- MediaInfo 20.09

https://github.com/stax76/MediaInfo.NET

hajj_3
13th December 2020, 15:32
v6.7.0.0

- New icon
- MediaInfo 20.09

https://github.com/stax76/MediaInfo.NET

the update functionality in v6.4.0.0 doesn't seem to work, a powershell window appears for a split second then disappears and the program closes but when i restart the program it hasn't updated.

stax76
13th December 2020, 18:10
Yes, I noticed it when I wanted to auto update the version that is included in staxrip, I will take a look.

stax76
13th December 2020, 19:08
Found the problem, could have happened when I back ported it from .NET Core to .NET Framework.

I changed the update routine using zip instead of 7z (same as mpv.net), uploaded 6.8, this has to be updated manually, from 6.8 to 6.9 it should work again.

Again I changed the back color of the dark theme.

JKyle
15th March 2021, 21:23
@stax76,

Plz take a look at this issue report (https://github.com/stax76/MediaInfo.NET/issues/10) on GitHub.

stax76
16th March 2021, 01:49
It's fixed in the last release 7.0.0.0.

hajj_3
26th March 2021, 14:34
mediainfo 21.03 is out now, i hope you can release a new version. Out of curiosity why did you revert back to .net from .net core?

stax76
26th March 2021, 15:25
Thanks for the note, I try to update it soon.

MediaInfo.NET much like mpv.net was originally built for staxrip and are very important for staxrip. .NET Core or as it's called today NET 5 is not yet part of the Windows OS. That's the main problem at the moment, but I'm really not sure if it's still true for the latest Windows build.

And maybe more and more apps require .NET 5 and people start accepting it. I used .NET 5 for my dark voidtools Everything frontend, and it became surprisingly popular, it was like staxrip, mpv.net and Open with++ reviewed by www.ghacks.net and has 51 Stars on GitHub, it can be found here:

https://github.com/stax76/Everything.NET

It was built in only 3 days which is a lot less than MediaInfo.NET.

Nobody has complained about the .NET 5 install requirements, that is good. But generally .NET Framework and .NET 5 are not compatible and applications have very different requirements, for many applications a port does not make sense, and for other it makes a lot of sense. There are many factors.

stax76
31st March 2021, 14:06
7.1.0.0

- MediaInfo 21.3
- Get-MediaInfo 3.7
- psy-rd moved to Analysis section

hajj_3
18th September 2021, 09:46
mediainfo 21.09 is out.

hajj_3
31st March 2022, 15:49
mediainfo 22.03 is out.

stax76
1st April 2022, 16:03
There was crash reported lately, so I tried to fix it and made a new release:

v7.2.0.0

- Next/Previous uses only known media file types as defined in the settings
- Larger list of known media file types
- Bit depth parameter is hidden for DTS
- Rebuild of corrupted settings file
- MediaInfo 22.03

hajj_3
24th June 2022, 09:57
mediainfo 22.06 is out.

hajj_3
5th October 2022, 07:48
mediainfo 22.09 is out.

hajj_3
23rd December 2022, 14:07
mediainfo 22.12 is out.

hajj_3
29th March 2023, 12:53
mediainfo 23.03 is out.

hajj_3
27th April 2023, 17:15
mediainfo 23.04 is out.

hajj_3
28th June 2023, 10:47
mediainfo 23.06 is out.

Klaus1189
12th July 2023, 21:24
mediainfo 23.07 is out.

hajj_3
6th September 2023, 17:31
Thanks for the note, I try to update it soon.

MediaInfo.NET much like mpv.net was originally built for staxrip and are very important for staxrip. .NET Core or as it's called today NET 5 is not yet part of the Windows OS. That's the main problem at the moment, but I'm really not sure if it's still true for the latest Windows build.

And maybe more and more apps require .NET 5 and people start accepting it. I used .NET 5 for my dark voidtools Everything frontend, and it became surprisingly popular, it was like staxrip, mpv.net and Open with++ reviewed by www.ghacks.net and has 51 Stars on GitHub, it can be found here:

https://github.com/stax76/Everything.NET

It was built in only 3 days which is a lot less than MediaInfo.NET.

Nobody has complained about the .NET 5 install requirements, that is good. But generally .NET Framework and .NET 5 are not compatible and applications have very different requirements, for many applications a port does not make sense, and for other it makes a lot of sense. There are many factors.

.NET8 is coming out soon, it allows programs not to require that .NET8 is installed, the functionality can be included in the program, this feature was added to .NET7, .NET8 is a long-term support release unlike .NET7: https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-8

SirMaster
6th September 2023, 22:16
.NET8 is coming out soon, it allows programs not to require that .NET8 is installed, the functionality can be included in the program, this feature was added to .NET7, .NET8 is a long-term support release unlike .NET7: https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-8

You have been able to build self-contained .net apps since .net core, way before .NET 5.

https://www.danielcrabtree.com/blog/496/net-core-self-contained-and-framework-dependent-deployments-explained

hajj_3
15th September 2023, 00:04
mediainfo 23.09 is out.

hajj_3
4th October 2023, 13:40
mediainfo 23.10 is out.

hajj_3
30th November 2023, 22:03
mediainfo 23.11.1 is out.

hajj_3
31st January 2024, 21:04
MediaInfo 24.01.1 is out.

hajj_3
18th April 2024, 20:13
MediaInfo 24.04 is out.

hajj_3
31st May 2024, 14:31
MediaInfo 24.05.1 is out.

hajj_3
9th November 2024, 09:12
mediainfo 24.11.1 is out.