首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在不更改一般信息的情况下破坏mp3文件

如何在不更改一般信息的情况下破坏mp3文件
EN

Stack Overflow用户
提问于 2022-01-14 23:28:35
回答 2查看 335关注 0票数 -1

为了教育目的,我需要在互联网上提供一些MP3。我不希望它被非法下载。因此,我想破坏MP3文件的方式,使它们在其他媒体播放器音乐上不可读。

问题:

我需要保持元数据不受影响(长度、标记等),因为我需要在这些mutagen.mp3文件上使用mutagen.id3和MP3。

我还没试过什么呢。我想知道有没有人知道该怎么做?

EN

回答 2

Stack Overflow用户

发布于 2022-01-15 15:07:49

您可以录制您自己的“音乐”(低语或拍手),并创建您自己的mp3。或者你可以使用维基百科中的一些版税免费片段。

票数 1
EN

Stack Overflow用户

发布于 2022-02-02 08:34:22

我已经有很长一段时间(几年)不想使用MP3字节了,所以在下面的建议中再检查一下帧大小的数字。如果你在我的指导下尝试一些东西,我可以帮你解决任何问题。

注意:

使用十六进制编辑器查看MP3的内部,并遵循下面解释的字节结构。

可能的解决方案

如果您的MP3文件有元数据,那么它实际上是的两个部分,连接了.

(例如: ID3元数据+ MP3音频数据)

ID3编辑器只关心第一部分的,这样就可以在不影响音频的情况下编辑部分。

第一部分是ID3元数据,它以3个字节的文本"ID3“(或字节:49 44 33)开始。

它将有一个字节中列出的大小(字节长度),因此您可以跳过ID3到MP3的开头。

第二部分是MP3数据,它以2字节的数字255 251 (或字节:FF FB)开头。

这两个字节FF FB典型的MP3帧的启动(MP3帧头有4个字节,例如:FF FB XX XX)。XX部件将取决于其频率、比特率、版本等MP3设置。

要损坏MP3数据,可以尝试:

  • 确保您的MP3文件编码为常量比特率或CBR (不是变量比特率,也不是VBRE 233)。

这使得查找每个MP3帧的开始变得更加容易。每个帧都有一个匹配的FF FB XX XX签名。它们都是相同的大小,因此,一旦从检查第一个帧中知道字节的长度,就可以跳过相同的数字到达下一个(或任何) MP3帧的开始(例如:您可以使用乘来达到特定的帧号)。

  • 查找MP3帧的字节长度:请参见类似问题的my Answer

公式为FrameSize = 144 * BitRate / (SampleRate + Padding) (CBR =零填充)。

示例:(bitrate=192,sampleRate=44.1 khz)

144 * 192 / (44.1 + 0) = 626 bytes per audio frame

  • Replace每帧开始时的每个FF FB都是随机字节,比如AA AA甚至AB CD .如果不再是预期的FF FB,那么MP3播放器应该拒绝播放它,给出一个错误,例如:“无效的MP3文件”.

  • 以后,您自己的应用程序总是可以将当前的2字节放回(替换)预期的FF FB,然后进行音频播放。通过跳过un-corruption字节以到达第一个帧的位置并将找到的前两个字节替换为FF FB.

来实现这个ID3

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70717624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档