gpt4 book ai didi

java - .wmv 文件的格式。 (或者任何视频文件都很棒)

转载 作者:行者123 更新时间:2023-12-01 19:13:01 29 4
gpt4 key购买 nike

我想获取一个视频文件并使用 java“加密”它。目前加密只是翻转位。我希望视频仍然能够播放,因此 header 需要完好无损。我发现很难找到标题有多大。我尝试使用 .avi 文件并使用此链接 AVI file details 假定 header 大小但这似乎不起作用。然后我最终猜测保留前 40kb(看起来很大?)完好无损,然后翻转后面的所有位。我猜这成功了,虽然视频最后有问题,但猜测 40kb 确实不太可接受。然后我在这里读到 .avi 文件有一个预告片,因此我决定暂时避免使用它们,以避免这种额外的复杂性。

谁能告诉我 .wmv 文件的格式是什么,最重要的是它的 header 的大小。如果不是 .wmv,任何流行的视频文件都可以!

如果不清楚,我们深表歉意。

最佳答案

正如其他人指出的那样 ASF specification完全覆盖WMV/WMA媒体文件格式。如果 C# 适合您,则 AsfMojo这是一个 ASF 文件解析器,即您可以使用 AsfFile 类的属性轻松确定 header 大小。

using (AsfFile asfFile = new AsfFile(@"C:\samples\sample.wmv"))
{
uint headerSize = asfFile.PacketConfiguration.AsfHeaderSize;
}

但这不会允许您扰乱数据,因为这会使文件无效。您不想打乱数据包,而是想打乱各个有效负载并保持其他所有内容完好无损。这通常是通过使用需要许可的编解码器来完成的(据我所知),否则文件将无法播放。

为了访问有效负载,您可以执行以下操作:

using (AsfFile asfFile = new AsfFile(@"C:\samples\sample.wmv"))
{
var dataObject = asfFile.GetAsfObject<AsfDataObject>();
foreach (var packet in dataObject.Packets)
foreach(var payload in packet.Payload)
{
//do something with the payload
}
}
}

如果您无法使用 C#,您至少可以使用该项目作为一般如何解析 ASF 文件的指南。

关于java - .wmv 文件的格式。 (或者任何视频文件都很棒),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7809405/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com