2017年11月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
無料ブログはココログ

« Windows Media エンコーダで、[Windows Media MPEG-4 Video V3]を使う。 | トップページ | スクリプトから.NETのSystem.Text.StringBuilderを使う。 »

2008年7月18日 (金)

ListVideoCodecs.VBS

cscript WMCmd.vbs -v_codecs
では、スクリプトが一部のコーデックをマスクして、すべては表示されません。

ListVideoCodecs.VBS

Option Explicit

Const WMENC_VIDEO=2

Const WMV7_FOURCC=827739479
Const WMV8_FOURCC=844516695
Const WMV9_FOURCC=861293911
Const WMS9_FOURCC=844321613
Const MP41_FOURCC=1395937357
Const UNCOMP_FOURCC=0

Const WMV7="WMV7"
Const WMV8="WMV8"
Const WMV9="WMV9"
Const WMS9="WMS9"
Const MP41="MP41"
Const UNCOMP="UNCOMP"

Dim Profile
Dim CodecName
Dim FourCC
Dim VBRMode
Dim CodecId
Dim Count
Dim dic

Set dic=CreateObject("Scripting.Dictionary")
Set Profile=CreateObject("WMENCEng.WMEncProfile2")
dic.Add dic.Count,"Video Codecs: "
For VBRMode=1 To 4
  Profile.VBRMode(WMENC_VIDEO,0)=VBRMode
  dic.Add dic.Count,Array("CBR Mode :",_
    "Peak Bit Rate-Based VBR Audio Mode :",_
    "Quality-Based VBR Audio Mode :",_
    "Bit Rate-Based VBR Audio Mode :")(VBRMode-1)
  For Count=0 To Profile.VideoCodecCount-1
    Profile.EnumVideoCodec Count,CodecName
    FourCC=Profile.GetCodecFourCCFromIndex(WMENC_VIDEO,Count)
    Select Case FourCC
      Case WMV7_FOURCC CodecId=WMV7
      Case WMV8_FOURCC CodecId=WMV8
      Case WMV9_FOURCC CodecId=WMV9
      Case WMS9_FOURCC CodecId=WMS9
      Case MP41_FOURCC CodecId=MP41
      Case UNCOMP_FOURCC CodecId=UNCOMP
      Case Else       CodecId=FourCC
    End Select
    dic.Add dic.Count,vbTab &  "[" & Count & "] "  & CodecId & " : " & CodecName
  Next
Next
WScript.Echo Join(dic.Items(),vbLf)

« Windows Media エンコーダで、[Windows Media MPEG-4 Video V3]を使う。 | トップページ | スクリプトから.NETのSystem.Text.StringBuilderを使う。 »