Mediainfo.wdx: (see video/audio metadata detailed information) - content plugin

Discuss and announce Total Commander plugins, addons and other useful tools here, both their usage and their development.

Moderators: white, Hacker, petermad, Stefan2

Post Reply
User avatar
EricB
Senior Member
Senior Member
Posts: 355
Joined: 2008-03-25, 22:21 UTC
Location: The Netherlands

Post by *EricB »

I stand corrected... Confusion started with this text on Totalcmd.net:
This's an extra link for someone who doesn't have msvcp110d.dll and msvcr110d.dll. MediaInfoWDX build with static MFC
Regards, EricB
iana
Senior Member
Senior Member
Posts: 345
Joined: 2010-07-27, 22:00 UTC

Post by *iana »

the simplest thing would be for the author to include the source in his release the way tbeu does.
iana
Senior Member
Senior Member
Posts: 345
Joined: 2010-07-27, 22:00 UTC

Post by *iana »

@Moon I finally installed and tested loopback's lister interface off the 0.71 version of the wdx and it works fine, this is the TCMediaInfo.xml I use:

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<tcmediainfo>
    <options>
        <Formats>AVI,DIVX,MPEG,MPE,MPA,DAT,MPG,ASF,VOB,MKV,WEBM,MP1,MP2,MP3,MP4,M4A,M4V,AVC,WAV,AIFF,OGG,OGM,WMA,WMV,MOV,WMV,QT,AC3,DTS,AU,D2V,RA,RM,APE,FLAC,FLV,JPG,JPEG,GIF,PNG</Formats>
        <MultiSeparator> / </MultiSeparator>
        <BasePath>base.db</BasePath>
        <MemoryBase>False</MemoryBase>
        <UseBase>True</UseBase>
        <SqlitePath>Sqlite3.dll</SqlitePath>
        <Sqlite64Path>Sqlite3_x64.dll</Sqlite64Path>
        <MediaInfoPath>MediaInfo.dll</MediaInfoPath>
        <MediaInfo64Path>MediaInfo_x64.dll</MediaInfo64Path>
        <MissedField><empty></MissedField>
        <DebugMode>0</DebugMode>
    </options>
    <sources>
        <!-- General -->
        <source name="Duration" field="Duration"/>
        <source name="OverallBitRate" field="OverallBitRate"/>
        <source name="GeneralFormat" field="Format"/>
        <source name="EncDate" field="Encoded_Date"/>
        <source name="TagDate" field="Tagged_Date"/>
        <source name="StreamCount" field="StreamCount"/>
        <!-- Tag info -->
        <source name="Title" field="Title"/>
        <source name="Album" field="Album"/>
        <source name="Performer" field="Performer"/>
        <source name="Copyright" field="Copyright"/>
        <source name="Comment" field="Comment"/>
        <source name="Composer" field="Composer"/>
        <source name="Genre" field="Genre"/>
        <source name="TrackNumber" field="Track/Position"/>
        <source name="Medium" field="OriginalSourceMedium"/>
        <source name="Source" field="OriginalSourceForm"/>
        <source name="EncodedWith" field="Encoded_Application"/>
        <!-- Video -->
        <source name="VideoFormat" field="Format" context="Video"/>
        <source name="VideoBr" field="BitRate" context="Video"/>
        <source name="VideoCodecID" field="CodecID" context="Video"/>
        <source name="VideoFrameWidth" field="Width" context="Video"/>
        <source name="VideoFrameHeight" field="Height" context="Video"/>
        <source name="VideoFPS" field="FrameRate" context="Video"/>
        <source name="VideoFrameCount" field="FrameCount" context="Video"/>
        <source name="PixelAspectRatio" field="PixelAspectRatio" context="Video"/>
        <source name="DisplayAspectRatio" field="DisplayAspectRatio" context="Video"/>
        <source name="CommonAspectRatio" field="DisplayAspectRatio/String" context="Video"/>
        <source name="VideoTagDate" field="Tagged_Date" context="Video"/> 		
        <!-- Audio -->
        <source name="AudioStreamCount" field="StreamCount" context="Audio"/>
        <source name="AudioLang" field="Language" context="Audio" stream="*"/>
        <source name="AudioFormat" field="Format" context="Audio"/>
        <source name="AudioBr" field="BitRate" context="Audio"/>
        <source name="AudioCodecID" field="CodecID" context="Audio"/>
        <source name="AudioBrMode" field="BitRate_Mode" context="Audio"/>
        <source name="AudioSamplingRate" field="SamplingRate" context="Audio"/>
        <source name="AudioChannels" field="Channel(s)" context="Audio"/>
        <source name="AudioResolution" field="BitDepth" context="Audio"/>
        <source name="AudioFormatSettingsMode" field="Format_Settings_Mode" context="Audio"/>
		<source name="AudioTagDate" field="Tagged_Date" context="Audio"/>
        <!-- Text -->
        <source name="TextStreamCount" field="StreamCount" context="Audio"/>
        <source name="TextLang" field="Language" context="Text" stream="*"/>
        <source name="TextFormat" field="Format" context="Text"/>
    </sources>
    <columns>
        <!-- General -->
        <column name="Duration">
            <unit name="hh:mm:ss" type="script">Output:=TimingFormat('%hh:%mm:%ss', Duration);</unit>
            <unit name="hh:mm:ss.fff" type="script">Output:=TimingFormat('%hh:%mm:%ss.%fff', Duration);</unit>
            <unit name="s" type="script">Output:=Trunc(Duration/1000);</unit>
            <unit name="z">Duration</unit>
            <unit name="Custom" type="script">
            <![CDATA[
              Output:='';
              if Duration = '' then Exit;
              Hour:=Trunc(Duration/3600000);
              Min:=Trunc((Duration-Hour*3600000)/60000);
              Sec:=Trunc((Duration-Hour*3600000-Min*60000)/1000);
              if (Hour <> 0) then Output:=IntToStr(Hour)+' hr ';
              if  (Min <> 0) then Output:=Output+IntToStr(Min) +' min ';
              if  (Sec <> 0) then Output:=Output+IntToStr(Sec) +' sec ';
            ]]>
            </unit>
        </column>
        <column name="Format">GeneralFormat</column>
        <column name="Bitrate">
            <unit name="Bps">OverallBitRate</unit>
            <unit name="KBps" type="script">Output:=Format('%f', OverallBitRate/1000);</unit>
            <unit name="MBps" type="script">Output:=Format('%f', OverallBitRate/1000000);</unit>
        </column>
        <column name="Encoded Date" coltype="ft_datetime">EncDate</column>
        <column name="Tagged Date" coltype="ft_datetime">TagDate</column>
        <column name="Stream Count">
            <unit name="All streams">StreamCount</unit>
            <unit name="Audio only">AudioStreamCount</unit>
            <unit name="Subtitles only">TextStreamCount</unit>
        </column>
        <separator/>
        <!-- Tag info -->
        <column name="Title">Title</column>
        <column name="Album">Album</column>
        <column name="Performer">Performer</column>
        <column name="Copyright">Copyright</column>
        <column name="Comment">Comment</column>
        <column name="Composer">Composer</column>
        <column name="Genre">Genre</column>
        <column name="Track Number">TrackNumber</column>
        <column name="Medium">Medium</column>
        <column name="Source">Source</column>
        <column name="Encoded With">EncodedWith</column>
        <separator/>
        <!-- Video -->
        <column name="Video Format">VideoFormat</column>
        <column name="Video Codec">VideoCodecID</column> <!-- For AVI this field return FOURCC -->
        <column name="Video Bitrate">
            <unit name="Bps">VideoBr</unit>
            <unit name="KBps" type="script">Output:=Format('%f', VideoBr/1000);</unit>
            <unit name="MBps" type="script">Output:=Format('%f', VideoBr/1000000);</unit>
        </column>
        <column name="Frame Size" type="script">
        <![CDATA[
          if (VideoFrameWidth = '') and (VideoFrameHeight = '') then
            Output:=''
          else
            Output:=VideoFrameWidth+' x '+VideoFrameHeight;
        ]]>
        </column>
        <column name="Frame Rate">VideoFPS</column>
        <column name="Frame Count">VideoFrameCount</column>
        <column name="Pixel aspect ratio">PixelAspectRatio</column>
        <column name="Display aspect ratio">DisplayAspectRatio</column>
        <column name="Common aspect ratio">CommonAspectRatio</column>
        <column name="Video Tagged Date" coltype="ft_datetime">VideoTagDate</column>		
        <column name="All video as string" type="script">
        <![CDATA[
		  if (VideoFrameWidth = '') and (VideoFrameHeight = '') then
            Output:=''
          else
            Output:=VideoFrameWidth+'x'+VideoFrameHeight;
          if (VideoFPS <> '') then Output:=Output+', '+VideoFPS+' fps';
          if (VideoFormat <> '') then Output:=Output+', '+VideoFormat;
        ]]>     
        </column>
        <separator/>
        <!-- Audio -->
        <column name="Audio Language">AudioLang</column>
        <column name="Audio Format">AudioFormat</column>
        <column name="Audio Bitrate">
            <unit name="Bps">AudioBr</unit>
            <unit name="KBps" type="script"><![CDATA[if (AudioBr <> '') then Output:=Format('%f', AudioBr/1000);]]></unit>
        </column>
        <column name="Bitrate Mode">AudioBrMode</column>
        <column name="Sampling Rate">AudioSamplingRate</column>
        <column name="Channels">AudioChannels</column>
        <column name="Resolution">AudioResolution</column>
        <column name="All audio as string" type="script">
        <![CDATA[
          Output:='';
          if (AudioBrMode <> '') then 
		  begin
			  Output:=AudioBrMode;
	          if (AudioBr <> '') then Output:=Output+'@'+Format('%d kbps', Trunc(AudioBr/1000));
		  end
		  else
	          if (AudioBr <> '') then Output:=Format('%d kbps', Trunc(AudioBr/1000));			
          if (AudioSamplingRate <> '') then Output:=Output+', '+AudioSamplingRate+'Hz';
          if (AudioResolution <> '') then Output:=Output+', '+AudioResolution+'bit';
          if (AudioFormatSettingsMode <> '') then
            Output:=Output+', '+AudioFormatSettingsMode
          else
              if (AudioChannels <> '') then
              case AudioChannels of
                1: Output:=Output+', Mono';
                2: Output:=Output+', Stereo';
              end;
        ]]>     
        </column>
        <column name="Audio Tagged Date" coltype="ft_datetime">AudioTagDate</column>		
        <separator/>
        <!-- Subtitles -->
        <column name="Subtitles">TextLanguage</column>
        <column name="Subtitles Format">TextFormat</column>
        <separator/>
        <!-- Almost demo purpose, retrieve custom values from lists -->
        <column name="Video codec custom" type="list" list="VideoCodecs">VideoCodecID</column>
        <column name="Audio codec custom" type="script">Output:=GetListValue('AudioCodecs', Format('%4.4d', AudioCodecID), AudioCodecID);</column>
    </columns>
    <lists>
        <list name="VideoCodecs" type="ini" file="Codecs.cfg" section="VIDEO"/>
        <list name="AudioCodecs" type="ini" file="Codecs.cfg" section="AUDIO"/>
    </lists>
    <listeroptions>
        <!-- Temporary! This options will be changed! -->
        <FontName>Courier New</FontName>
        <FontSize>12</FontSize>
    </listeroptions>
</tcmediainfo>
to use it in lister you need to add this line under [ListerPlugins] in wincmd.ini

Code: Select all

18=%COMMANDER_PATH%\wdx\TCMediaInfo\TCMediaInfo.wdx
18_detect=MULTIMEDIA & FORCE | (EXT="AVI" | EXT="DIVX" | EXT="MPEG"| EXT="MPE" | EXT="MPA" | EXT="MPG" | EXT="ASF" | EXT="VOB" | EXT="MKV" | EXT="OGM" | EXT="MP1" |EXT="MP2" | EXT="MP3" | EXT="MP4"| EXT="M4A" | EXT="M4V" | EXT="AVC" | EXT="WAV" | EXT="AIFF" | EXT="OGG" | EXT="WMA" | EXT="WMV" | EXT="MOV" | EXT="QT" | EXT="AC3" | EXT="DTS" | EXT="AU" | EXT="D2V" | EXT="RA" | EXT="RM" | EXT="RAM" | EXT="APE" | EXT="FLAC" | EXT="FLV" | EXT="JPG" | EXT="JPEG" | EXT="GIF" | EXT="PNG")
you need to set the number of the lister plugin to the next unused and set the path to the wdx as it is on your system.
here's a screen shot Image: http://i.imgur.com/kqXjr4V.png
HAL 9000
Senior Member
Senior Member
Posts: 384
Joined: 2007-09-10, 13:05 UTC

Post by *HAL 9000 »

tbeu wrote:Updated archive contains v0.7.61 of Mediainfo.dll.

Download: wdx_mediainfo.rar (x86/x86-64) (C++ sources included)
Tbeu it's great i always dreamed of a Explorer Shell extension for this and it works nicely though the first try i did showed some bug with the content plugin

for .ts Mpeg-2 it outputs as string just "2" for [=mediainfo.video codec] :)

i keep on testing the other fields :)
User avatar
tbeu
Power Member
Power Member
Posts: 1336
Joined: 2003-07-04, 07:52 UTC
Location: Germany
Contact:

Post by *tbeu »

Updated archive contains v0.7.62 of Mediainfo.dll.

Download: wdx_mediainfo.rar (x86/x86-64) (C++ sources included)
TC plugins: Autodesk 3ds Max / Inventor / Revit Preview, FileInDir, ImageMetaData (JPG Comment/EXIF/IPTC/XMP), MATLAB MAT-file Viewer, Mover, SetFolderDate, Solid Edge Preview, Zip2Zero and more
User avatar
tbeu
Power Member
Power Member
Posts: 1336
Joined: 2003-07-04, 07:52 UTC
Location: Germany
Contact:

Post by *tbeu »

Updated archive contains v0.7.64 of Mediainfo.dll.

Download: wdx_mediainfo.rar (x86/x86-64) (C++ sources included)
TC plugins: Autodesk 3ds Max / Inventor / Revit Preview, FileInDir, ImageMetaData (JPG Comment/EXIF/IPTC/XMP), MATLAB MAT-file Viewer, Mover, SetFolderDate, Solid Edge Preview, Zip2Zero and more
User avatar
tbeu
Power Member
Power Member
Posts: 1336
Joined: 2003-07-04, 07:52 UTC
Location: Germany
Contact:

Post by *tbeu »

Updated archive contains v0.7.67 of Mediainfo.dll.

Download: wdx_mediainfo.rar (x86/x86-64) (C++ sources included)
User avatar
tbeu
Power Member
Power Member
Posts: 1336
Joined: 2003-07-04, 07:52 UTC
Location: Germany
Contact:

Post by *tbeu »

Updated archive contains v0.7.69 of Mediainfo.dll.

Download: wdx_mediainfo.rar (x86/x86-64) (C++ sources included)
User avatar
tbeu
Power Member
Power Member
Posts: 1336
Joined: 2003-07-04, 07:52 UTC
Location: Germany
Contact:

Update to MediaInfo v0.7.70

Post by *tbeu »

Updated archive contains v0.7.70 of Mediainfo.dll.

Download: wdx_mediainfo.rar (x86/x86-64) (C++ sources included)
TC plugins: Autodesk 3ds Max / Inventor / Revit Preview, FileInDir, ImageMetaData (JPG Comment/EXIF/IPTC/XMP), MATLAB MAT-file Viewer, Mover, SetFolderDate, Solid Edge Preview, Zip2Zero and more
sgp
Senior Member
Senior Member
Posts: 355
Joined: 2005-01-31, 16:04 UTC

Post by *sgp »

iana wrote:@Moon I finally installed and tested loopback's lister interface off the 0.71 version of the wdx and it works fine, this is the TCMediaInfo.xml I use: ...
here's a screen shot Image: http://i.imgur.com/kqXjr4V.png
iana Are you still using this plugin as a lister? I installed version 0.74beta with MediaInfo.dll 0.7.69, it appears to work correctly as wdx and and as a lister, but the listed fields do not match the picture you posted. What do I need to do? I merged in your TCMediaInfo.xml quoted above (post) - paying attention not to undo the newer edits coming from version 0.74beta - and added the plugin to [ListerPlugins] and restarted TC. Press F3 on an MP3 file and lister lists the tags, but like I said some of the fields from TCMediaInfo.xml aren't showing. In another post you mentioned an ini file, TCMediaInfo.ini - what is it? Do I need it? Would you please upload your .xml and .ini file? Thank you in advance.
iana
Senior Member
Senior Member
Posts: 345
Joined: 2010-07-27, 22:00 UTC

Post by *iana »

yes I am.
I am using the updated version 0.74 with mediainfo.dll 0.70, one of the reasons I like that plugin is it's extendability.
It's late and my response might not be the best but let's try it.
For the plugin to work properly you need to set a few things.
#1 edit TCMediaInfo.xml to support the formats you want (the ini file was for the old alpha wlx version, that one has been merged with the wdx to form 1 plugin if you are not using the wlxMediaInfo.wlx you only need to configure the xml).
#2 you need to edit wincmd.ini so it will load TCMediaInfo.wdx when viewing mp3(or mp4 etc) files, you can use a text editor or you can use Alexey's Plugin manager, I have this line in wincmd.ini
17=%COMMANDER_PATH%\wdx\TCMediaInfo\TCMediaInfo.wdx
17_detect=MULTIMEDIA & FORCE | (EXT="AVI" | EXT="DIVX" | EXT="MPEG"| EXT="MPE" | EXT="MPA" | EXT="MPG" | EXT="ASF" | EXT="VOB" | EXT="MKV" | EXT="OGM" | EXT="MP1" |EXT="MP2" | EXT="MP3" | EXT="MP4"| EXT="M4A" | EXT="M4V" | EXT="AVC" | EXT="WAV" | EXT="AIFF" | EXT="OGG" | EXT="WMA" | EXT="WMV" | EXT="MOV" | EXT="QT" | EXT="AC3" | EXT="DTS" | EXT="AU" | EXT="D2V" | EXT="RA" | EXT="RM" | EXT="RAM" | EXT="APE" | EXT="FLAC" | EXT="FLV" | EXT="JPG" | EXT="JPEG" | EXT="GIF" | EXT="PNG")
it loads not only video and audio files but a few image formats, as far as I can tell you can even use it for pe files (exe/dll).
Here's a few screen shots.
#1 my xml config Image: http://i.imgur.com/wxjIuub.jpg
#2 a screenshot of plugin managers supported formats Image: http://i.imgur.com/VediUHP.jpg
3# a screen of lister using the wdx to view mp3 info Image: http://i.imgur.com/RGaJEkR.png

as I said the ini was for the old wlx plugin that has been abandoned, but here is the xml I currently use (I think I edited it when 0.74 came out with, as it had a few new fields)

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<tcmediainfo>
    <options>
        <Formats>AVI,DIVX,MPEG,MPE,MPA,DAT,MPG,ASF,VOB,MKV,OGM,WEBM,MP1,MP2,MP3,MP4,M4A,M4V,AVC,FLV,3GP,TS,WAV,AIFF,OGG,WMA,MOV,WMV,QT,AC3,DTS,AU,D2V,RA,RM,APE,FLAC,JPG,JPEG,GIF,PNG,WEBP</Formats>
        <MultiSeparator> / </MultiSeparator>
        <BasePath>base.db</BasePath>
        <MemoryBase>False</MemoryBase>
        <UseBase>True</UseBase>
        <SqlitePath>Sqlite3.dll</SqlitePath>
        <Sqlite64Path>Sqlite3_x64.dll</Sqlite64Path>
        <MediaInfoPath>MediaInfo.dll</MediaInfoPath>
        <MediaInfo64Path>MediaInfo_x64.dll</MediaInfo64Path>
        <MissedField><empty></MissedField>
        <DebugMode>0</DebugMode>
    </options>
    <sources>
        <!-- General -->
        <source name="Duration" field="Duration"/>
        <source name="OverallBitRate" field="OverallBitRate"/>
        <source name="GeneralFormat" field="Format"/>
        <source name="EncDate" field="Encoded_Date"/>
        <source name="RecDate" field="Recorded_Date"/>
        <source name="TagDate" field="Tagged_Date"/>
        <source name="StreamCount" field="StreamCount"/>
        <!-- Tag info -->
        <source name="Title" field="Title" process="fix_cp"/>
        <source name="Album" field="Album" process="fix_cp"/>
        <source name="Performer" field="Performer" process="fix_cp"/>
        <source name="Copyright" field="Copyright" process="fix_cp"/>
        <source name="Comment" field="Comment" process="fix_cp"/>
        <source name="Composer" field="Composer" process="fix_cp"/>
        <source name="Genre" field="Genre"/>
        <source name="TrackNumber" field="Track/Position"/>
        <source name="Medium" field="OriginalSourceMedium"/>
        <source name="Source" field="OriginalSourceForm"/>
        <source name="EncodedWith" field="Encoded_Application"/>
        <!-- Video -->
        <source name="VideoFormat" field="Format" context="Video"/>
        <source name="VideoBr" field="BitRate" context="Video"/>
        <source name="VideoCodecID" field="CodecID" context="Video"/>
        <source name="VideoFrameWidth" field="Width" context="Video"/>
        <source name="VideoFrameHeight" field="Height" context="Video"/>
        <source name="VideoFPS" field="FrameRate" context="Video"/>
        <source name="VideoFrameCount" field="FrameCount" context="Video"/>
        <source name="PixelAspectRatio" field="PixelAspectRatio" context="Video"/>
        <source name="DisplayAspectRatio" field="DisplayAspectRatio" context="Video"/>
        <source name="CommonAspectRatio" field="DisplayAspectRatio/String" context="Video"/>
        <source name="VideoTagDate" field="Tagged_Date" context="Video"/> 		
        <!-- Audio -->
        <source name="AudioStreamCount" field="StreamCount" context="Audio"/>
        <source name="AudioLang" field="Language" context="Audio" stream="*"/>
        <source name="AudioFormat" field="Format" context="Audio"/>
        <source name="AudioBr" field="BitRate" context="Audio"/>
        <source name="AudioCodecID" field="CodecID" context="Audio"/>
        <source name="AudioBrMode" field="BitRate_Mode" context="Audio"/>
        <source name="AudioSamplingRate" field="SamplingRate" context="Audio"/>
        <source name="AudioChannels" field="Channel(s)" context="Audio"/>
        <source name="AudioResolution" field="BitDepth" context="Audio"/>
        <source name="AudioFormatSettingsMode" field="Format_Settings_Mode" context="Audio"/>
		<source name="AudioTagDate" field="Tagged_Date" context="Audio"/>
        <!-- Text -->
        <source name="TextStreamCount" field="StreamCount" context="Audio"/>
        <source name="TextLang" field="Language" context="Text" stream="*"/>
        <source name="TextFormat" field="Format" context="Text"/>
    </sources>
    <columns>
        <!-- General -->
        <column name="Duration">
            <unit name="hh:mm:ss" type="script">Output:=TimingFormat('%hh:%mm:%ss', Duration);</unit>
            <unit name="hh:mm:ss.fff" type="script">Output:=TimingFormat('%hh:%mm:%ss.%fff', Duration);</unit>
            <unit name="s" type="script">Output:=Trunc(Duration/1000);</unit>
            <unit name="z">Duration</unit>
            <unit name="Custom" type="script">
            <![CDATA[
              Output:='';
              if Duration = '' then Exit;
              Hour:=Trunc(Duration/3600000);
              Min:=Trunc((Duration-Hour*3600000)/60000);
              Sec:=Trunc((Duration-Hour*3600000-Min*60000)/1000);
              if (Hour <> 0) then Output:=IntToStr(Hour)+' hr ';
              if  (Min <> 0) then Output:=Output+IntToStr(Min) +' min ';
              if  (Sec <> 0) then Output:=Output+IntToStr(Sec) +' sec ';
            ]]>
            </unit>
        </column>
        <column name="Format">GeneralFormat</column>
        <column name="Bitrate">
            <unit name="Bps">OverallBitRate</unit>
            <unit name="KBps" type="script">Output:=Format('%f', OverallBitRate/1000);</unit>
            <unit name="MBps" type="script">Output:=Format('%f', OverallBitRate/1000000);</unit>
        </column>
        <column name="Encoded Date" coltype="ft_datetime">EncDate</column>
        <column name="Recorded Date" coltype="ft_datetime">RecDate</column>
        <column name="Tagged Date" coltype="ft_datetime">TagDate</column>
        <column name="Stream Count">
            <unit name="All streams">StreamCount</unit>
            <unit name="Audio only">AudioStreamCount</unit>
            <unit name="Subtitles only">TextStreamCount</unit>
        </column>
        <separator/>
        <!-- Tag info -->
        <column name="Title">Title</column>
        <column name="Album">Album</column>
        <column name="Performer">Performer</column>
        <column name="Copyright">Copyright</column>
        <column name="Comment">Comment</column>
        <column name="Composer">Composer</column>
        <column name="Genre">Genre</column>
        <column name="Track Number">TrackNumber</column>
        <column name="Medium">Medium</column>
        <column name="Source">Source</column>
        <column name="Encoded With">EncodedWith</column>
        <separator/>
        <!-- Video -->
        <column name="Video Format">VideoFormat</column>
        <column name="Video Codec">VideoCodecID</column> <!-- For AVI this field return FOURCC -->
        <column name="Video Bitrate">
            <unit name="Bps">VideoBr</unit>
            <unit name="KBps" type="script">Output:=Format('%f', VideoBr/1000);</unit>
            <unit name="MBps" type="script">Output:=Format('%f', VideoBr/1000000);</unit>
        </column>
        <column name="Frame Size" type="script">
        <![CDATA[
          if (VideoFrameWidth = '') and (VideoFrameHeight = '') then
            Output:=''
          else
            Output:=VideoFrameWidth+' x '+VideoFrameHeight;
        ]]>
        </column>
        <column name="Frame Rate">VideoFPS</column>
        <column name="Frame Count">VideoFrameCount</column>
        <column name="Pixel aspect ratio">PixelAspectRatio</column>
        <column name="Display aspect ratio">DisplayAspectRatio</column>
        <column name="Common aspect ratio">CommonAspectRatio</column>
        <column name="Video Tagged Date" coltype="ft_datetime">VideoTagDate</column>		
        <column name="All video as string" type="script">
        <![CDATA[
		  if (VideoFrameWidth = '') and (VideoFrameHeight = '') then
            Output:=''
          else
            Output:=VideoFrameWidth+'x'+VideoFrameHeight;
          if (VideoFPS <> '') then Output:=Output+', '+VideoFPS+' fps';
          if (VideoFormat <> '') then Output:=Output+', '+VideoFormat;
        ]]>     
        </column>
        <separator/>
        <!-- Audio -->
        <column name="Audio Language">AudioLang</column>
        <column name="Audio Format">AudioFormat</column>
        <column name="Audio Bitrate">
             <unit name="Bps">AudioBr</unit>
             <unit name="KBps" type="script"><![CDATA[if (AudioBr <> '') then Output:=Format('%f', AudioBr/1000);]]></unit>
        </column>
        <column name="Bitrate Mode">AudioBrMode</column>
        <column name="Sampling Rate">AudioSamplingRate</column>
        <column name="Channels">AudioChannels</column>
        <column name="Resolution">AudioResolution</column>
        <column name="All audio as string" type="script">
        <![CDATA[
          Output:='';
          if (AudioBrMode <> '') then 
		  begin
			  Output:=AudioBrMode;
	          if (AudioBr <> '') then Output:=Output+'@'+Format('%d kbps', Trunc(AudioBr/1000));
		  end
		  else
	          if (AudioBr <> '') then Output:=Format('%d kbps', Trunc(AudioBr/1000));			
          if (AudioSamplingRate <> '') then Output:=Output+', '+AudioSamplingRate+'Hz';
          if (AudioResolution <> '') then Output:=Output+', '+AudioResolution+'bit';
          if (AudioFormatSettingsMode <> '') then
            Output:=Output+', '+AudioFormatSettingsMode
          else
              if (AudioChannels <> '') then
              case AudioChannels of
                1: Output:=Output+', Mono';
                2: Output:=Output+', Stereo';
              end;
        ]]>     
        </column>
        <column name="Audio Tagged Date" coltype="ft_datetime">AudioTagDate</column>		
        <separator/>
        <!-- Subtitles -->
        <column name="Subtitles">TextLanguage</column>
        <column name="Subtitles Format">TextFormat</column>
        <separator/>
        <!-- Almost demo purpose, retrieve custom values from lists -->
        <column name="Video codec custom" type="list" list="VideoCodecs">VideoCodecID</column>
        <column name="Audio codec custom" type="script">Output:=GetListValue('AudioCodecs', Format('%4.4d', AudioCodecID), AudioCodecID);</column>
    </columns>
    <lists>
        <list name="VideoCodecs" type="ini" file="Codecs.cfg" section="VIDEO"/>
        <list name="AudioCodecs" type="ini" file="Codecs.cfg" section="AUDIO"/>
    </lists>
    <listeroptions>
		<display>
			<Background color="16777215"/>
			<HeaderFont color="0" name="Courier New" size="17" style="1"/>
			<FieldFont color="8421504" name="Courier New" size="13" style="1"/>
			<InfoFont color="0" name="Courier New" size="13" style="0"/>
			<LineHeight>0</LineHeight>
			<SeparatorPos>300</SeparatorPos>
		</display>
		<views>
			<view name="Simple">
			<![CDATA[
				LineAddHeader(GetName('General'));
				Title:=Get('Title');
				if Title <> '' then LineAddText(GetName('Title'), FixCP(Get('Title')));
//				AddCheck('Title', 'General');
				fmt:=GetC('Format', 'General', 0) + GetB('Format_Profile', 'General', 0) + Get('Duration/String1');
				LineAddText(GetName('Format'), fmt);
				AddCheck('OverallBitRate/String', 'General');
				AddCheck('Encoded_Date', 'General');
				AddCheck('Recorded_Date', 'General');
				if GetCount('Video') > 0 then
				begin
					LineAddHeader(GetName('Video'));
					for i:=0 to GetCount('Video')-1 do
					begin
						Stream:=i;
						stream:=GetC('Language/String', 'Video', i) + 
						GetC('BitRate/String', 'Video', i) + 
						Get('Width', 'Video', i) + 'x' + Get('Height', 'Video', i) + ' ' +
						GetB('DisplayAspectRatio/String', 'Video', i) + 
						GetC('FrameRate/String', 'Video', i) +  
						Get('Format', 'Video', i) + ' ' +
						GetB('Format_Profile', 'Video', i);
						LineAddText('Stream '+IntToStr(i), stream);					
					end;
				end;
				if GetCount('Audio') > 0 then
				begin
					LineAddHeader(GetName('Audio'));
					for i:=0 to GetCount('Audio')-1 do
					begin
						stream:=GetC('Language/String', 'Audio', i) + 
						GetC('BitRate/String', 'Audio', i) + 
						GetC('SamplingRate/String', 'Audio', i) + 
						GetC('Channel(s)/String', 'Audio', i) + 
						Get('Format', 'Audio', i) + ' ' +
						GetB('Format_Profile', 'Audio', i);
						LineAddText('Stream '+IntToStr(i), stream);					
					end;
				end;
				if GetCount('Text') > 0 then
				begin
					LineAddHeader(GetName('Text'));
					for i:=0 to GetCount('Text')-1 do
					begin
						stream:=GetC('Language/String', 'Text', i) + 
						GetC('BitRate/String', 'Text', i) + 
						Get('Format', 'Text', i);
						LineAddText('Stream '+IntToStr(i), stream);					
					end;
				end;

				procedure AddCheck(Field, Context);
				begin
					R:=Get(Field, Context);
					if R = '' then Exit;
					LineAddField(Field, Context);
				end;
				function GetC(Field, Context, Stream);
				begin
					Result:=Get(Field, Context, Stream);
					if Result = '' then Exit;
					Result:=Result+', ';
				end;
				function GetB(Field, Context, Stream);
				begin
					Result:=Get(Field, Context, Stream);
					if Result = '' then Exit;
					Result:='('+Result+'), ';
				end;
			]]>     
			</view>
			<view name="Splitted long lines (test)">
			<![CDATA[
				LineAddHeader(GetName('General'));
				// split possible long filename
				Name:=GetName('CompleteName');
				Info:=Get('CompleteName');
				LineAddSplit(Name, Info, ' ', 80);
				
				Title:=Get('Title');
				if Title <> '' then LineAddText(GetName('Title'), FixCP(Get('Title')));
				LineAddField('OverallBitRate/String');
				LineAddField('Duration');
				LineAddHeader(GetName('Video'));

				// split complete name
				Name:=GetName('Encoded_Library_Settings', 'Video');
				Info:=Get('Encoded_Library_Settings', 'Video');
				LineAddSplit(Name, Info, ' ', 80);

				procedure LineAddSplit(name, line, char, max);
				begin
					while StrLen(line) > 0 do
					begin
						str:=StrLeft(line, max);
						for i:=max downto 0 do
						begin
							if StrMid(line, i, 1) = char then Break;
						end;
						if i = 0 then
						begin
							part:=StrMid(line, 1, max);
							line:=StrMid(line, max + 1);
						end
						else
						begin
							part:=StrMid(line, 1, i-1);
							line:=StrMid(line, i+1);
						end;
						LineAddText(name, part);
						if (name <> '') then name:='';
					end;
				end;
			]]>     
			</view>
			<view name="Raw info">
			<![CDATA[
				LineAddHeader('General');
				Fill('General');
				LineAddHeader('Video');
				Fill('Video');
				LineAddHeader('Audio');
				Fill('Audio');
				LineAddHeader('Text');
				Fill('Text');
				LineAddHeader('Other');
				Fill('Other');
				LineAddHeader('Image');
				Fill('Image');
				LineAddHeader('Menu');
				Fill('Menu');

				procedure Fill(C);
				begin
					F:=FieldGetFirst(C);
					LineAddField(F, C);
					while F <> '' do
					begin
					  F:=FieldGetNext;
					  if F = '' then Continue;
					  if F = 'Inform' then Continue;
					  if StrPos(F, '/') then Continue;
					  R:=Get(F, C);
					  LineAddText(F, R);
					end;
				end;
			]]>     
			</view>
			<view name="Translation of fields">
			<![CDATA[
				LineAddHeader('General');
				Fill('General');
				LineAddHeader('Video');
				Fill('Video');
				LineAddHeader('Audio');
				Fill('Audio');
				LineAddHeader('Text');
				Fill('Text');
				LineAddHeader('Other');
				Fill('Other');
				LineAddHeader('Image');
				Fill('Image');
				LineAddHeader('Menu');
				Fill('Menu');

				procedure Fill(C);
				begin
					F:=FieldGetFirst(C);
					LineAddField(F, C);
					while F <> '' do
					begin
					  F:=FieldGetNext;
					  if F = '' then Continue;
					  if F = 'Inform' then Continue;
					  if StrPos(F, '/') then Continue;
					  R:=Get(F, C);
					  LineAddText(F, GetName(F, C));
					end;
				end;
			]]>     
			</view>
		</views>
		<ViewMode>Default</ViewMode>
		<Language></Language>
    </listeroptions>
</tcmediainfo>

ps. I notice the my screenshots are not quite the same, there might be a few reasons for that, the plugin was updated from 0.71 to 0.74, the old was on XP the new is 7 (different font and theme) etc.
sgp
Senior Member
Senior Member
Posts: 355
Joined: 2005-01-31, 16:04 UTC

Post by *sgp »

Hi iana. I agree, it's a flexible plugin. I'm using version 0.74 with mediainfo 0.70 on XP. Thanks for posting your xml. F3 works fine now for most formats except mkv. If I press F3 on an mkv file I get the standard TC viewer in IE mode and a download file dialog (for a local file). Very weird. By contrast, pressing F3 on an avi or mp4 etc. file shows the mediainfo information correctly. Anyway, I can live with this weird issue, I'll get to it when I'll get to it.
iana
Senior Member
Senior Member
Posts: 345
Joined: 2010-07-27, 22:00 UTC

Post by *iana »

F3 works fine now for most formats except mkv. If I press F3 on an mkv file I get the standard TC viewer in IE mode and a download file dialog (for a local file).
I've newer had this problem, on the other hand what ie plugin are you using, ieview has been abandoned you should try HTMLView http://sites.google.com/site/htmlview/
I'm not sure why htmlview is not on totalcmd.net
I have issues with archview loading on mkv files.
User avatar
tbeu
Power Member
Power Member
Posts: 1336
Joined: 2003-07-04, 07:52 UTC
Location: Germany
Contact:

Update to MediaInfo v0.7.71

Post by *tbeu »

Updated archive contains v0.7.71 of Mediainfo.dll.

Download: wdx_mediainfo.rar (x86/x86-64) (C++ sources included)
TC plugins: Autodesk 3ds Max / Inventor / Revit Preview, FileInDir, ImageMetaData (JPG Comment/EXIF/IPTC/XMP), MATLAB MAT-file Viewer, Mover, SetFolderDate, Solid Edge Preview, Zip2Zero and more
User avatar
xmeron
Junior Member
Junior Member
Posts: 90
Joined: 2009-06-17, 19:43 UTC

Post by *xmeron »

2tbeu

Thanks for your awesome job, new version works well as before. But why not add a version number in the filename? I have several wdx_mediainfo, often have to recognize them by their file date.

By the way, why not put this plugin to totalcmd.net? Some months before, i wanted to update my wdx_mediainfo, then found MediaInfoWDX in totalcmd.net, i thought they were the same plugin, then i downloaded it and tried again and again for half a day, it finally confused me and thus situation continued for long time.
Post Reply