希望避免使用任何第三方实用程序。正在寻找一种方法来转换或以某种方式将fccHandler
中包含的“Avi.AVICOMPRESSOPTIONS
”代码翻译成人类可读的编解码器名称以供显示。
通过大量的搔痒和盯着数字,我开始玩它,直到我记得读到一些关于它是uint代表十六进制的东西。
这可以正常转换。 :)
public string MakeFourCC(uint fccHandler)
{
string inputHex = fccHandler.ToString("X");
StringBuilder sb = new StringBuilder();
for (int i = 0; i <= inputHex.Length - 2; i += 2)
{
sb.Append(Convert.ToString(Convert.ToChar(Int32.Parse(inputHex.Substring(i, 2),
System.Globalization.NumberStyles.HexNumber))));
}
char[] array = sb.ToString().ToCharArray();
Array.Reverse(array);
return new string(array);
}
答案 0 :(得分:0)
以下代码可用于获取FOURCC的字符串表示形式:
uint fourcc = ...;
var fourccString = new string
(
new[]
{
(char)(fourcc & 0xFF),
(char)((fourcc & 0xFF00) >> 8),
(char)((fourcc & 0xFF0000) >> 16),
(char)((fourcc & 0xFF000000U) >> 24)
}
);
要获得更加用户友好的名称,您可以使用已知FOURCC列表http://www.fourcc.org/codecs.php