我已经设置了一个脚本以使用python中的urllib2下载mp3. url = 'example.com' req2 = urllib2.Request(url) response = urllib2.urlopen(req2) #grab the data data = response.read() mp3Name = "song.mp3" song = open(mp3Name, "w") song.write(data) # was data2 song.close() 事实证明,这与我在Windows或我当前的Python版本上下载它是有意义的.我在Ubuntu发行版上测试了代码,并且MP3文件下载得很好...因此,我只使用了简单的urllib2.openurl方法,它的工作正常! 总结: 我在python上使用urllib2.openurl在ubuntu发行版中. 我正在使用较新的Python版本,但我觉得不可能那样. mp3用la脚编码
以下是关于 mp3 的编程技术问答
我在使用WebPack文件加载程序中使我的MP3文件工作时有问题. 这是问题: 我在硬盘上有一个mp3文件,如果我使用Chrome打开Chrome,例如" C:\ SomeFolder \ Somemp3file.mp3"在浏览器的一个选项卡中打开,并且可以很好地播放. . 但是,当我使用webpack提供完全相同的文件时,它不起作用.我已经在WebPack中配置了加载程序: { test: /\.(gif|jpg|png|mp3|aac|ogg)$/, loader: 'file' } 然后,当我试图链接到文件时,我需要在我的javascript中,这样: require('file!./../content/somemp3file.mp3'); 这正确返回了我的MP3文件的URL. 如果我尝试手动转到localhost:8080然后是由require返回的URL,那么Chrome中的MP3播放器会像我期望的那样弹出,但是无
我搜索了相关问题,但无法找到任何相关信息. 我正在尝试使Web Audio API播放一个编码在另一个文件容器中的MP3文件,因此到目前为止,我要做的就是解析所述容器,并将结果馈送二进制数据(arrayBuffer)馈送到该容器AudioContext.decodeaudiodata方法,据说它接受包含音频数据的任何类型的arraybuffer.但是,它总是会引发错误回调. 我只对我所做的事情有一个微弱的掌握,这可能是整个方法是错误的.也许是不可能的. 你们中有人尝试过这样的事情吗?任何帮助都将受到赞赏! 这是一些代码,可以尝试更好地说明这一点.以下只是存储ArrayBuffer: newFile: function(filename){ var that=this; var oReq = new XMLHttpRequest(); oReq.open("GET", filename, true); oReq.response
我在问,因为我在任何地方都找不到答案. 我已经成功实现了 recorderjs ,以记录JS中的麦克风输入.但是,记录的文件是WAV,它导致大文件.我正在寻找一种直接使用JS记录到MP3的方法,或以某种方式对MP3而不是WAV进行编码. 如何完成?是否有可以执行此操作的Web音频API函数或某种类型的JS MP3编码器? 解决方案 我见过的唯一的Javascript mp3编码器是/libmp3lame-js ,它是使用emscripten的端口.它应该很慢,我从来没有使用过. 我不知道任何本质上写的JavaScript MP3编码器,并且编码不受Web Audio API的涵盖. 其他解决方案 有一个用纯JavaScript编写的库,称为Lamejs.从原始音频编码mp3.它比libmp3lame编译的Emscripten快得多. https://github.com/zhuker/lamejs 示例用法: lib = new lamejs();
我正在尝试使用DecodeAudioData来解码并播放JavaScript中较大mp3文件的初始部分.我的第一个粗略方法是将MP3开头的许多字节切下来,并将其喂入解码.毫不奇怪,这失败了. 挖掘了一些挖掘后,解码性似乎只能与. 但是,没有关于有效MP3块的结构(上述的作者没有澄清).我知道那里存在的各种MP3拆分器,但我想以编程方式处理此. (我正在尝试使用服务器端上的nodejs实现一种"穷人的流"). 那么,在mp3框架标题上分裂是否足够,还是我需要做更多? (也许通过在末尾附加一些数据来"关闭"每个块?)"字节储层"怎么样?这会引起问题吗?为了记录,我目前正在使用128kbps CBR MP3.这会以任何方式简化过程吗? 有关解码性数据期望的任何信息将不胜感激. 谢谢. ps:我意识到,这也许是对公平的Dinkum thinkum的要求请求, withnode-js and-socket-io"> post ,但我的声誉较低,使我无法发表评论.
我有一个wav文件的URL http://xyz.com/recordings/employees/test.wav 我想知道的是如何将此文件更改为mp3格式,并使用PHP脚本将其存储在特定位置,因为此文件位于其他服务器中? 我知道FFMPEG,但不确定它是否有效. 解决方案 我找到了一个执行此转换过程的API.链接是: for Conversion 其他解决方案 我希望您有Linux: exec('wget http://xyz.com/recordings/employees/test.wav'); exec('ffmpeg -i test.wav test.mp3'); exec('mv test.mp3 /youlocation/test.mp3'); 其他解决方案 那通常没有问题,您可以将此文件下载到临时文件夹中.比您必须转换它.有例如FFMPEG扩展到PHP,但没有使用PHP分配Afaik发货. 但是,即使您没有这个,也可以在Li
我有一些声音文件(基本上是mp3,但可以是任何比特率).我需要方法将输入文件的指定部分(不超过40秒)提取到8位单声道输出中. 我将感谢您选择Java库做到这一点的任何帮助或建议. 解决方案 您可以使用您可以在此处找到有关将立体声混合到单声道混合的一些提示: 将16位音频转换为8位只是删除更高的8位: 编辑:有关提取40秒部分的更多信息: 解码器的输出是PCM样品.如果您的输入为16位立体声44100Hz,则每个帧为16位 * 2通道= 4字节,每个帧为44100 * 4字节.跳过所需的任意数量的输出字节,直到开始所需的零件开始,然后将44100 * 4 * 40字节转储为40秒.您甚至可以将混合物混合到单声道中,然后在您走时切成8位. 其他解决方案 我已经看到了很多链接以相反的意义,您通常是说,您通常会得到的信息是使用Java将WAV转换为MP3的信息,但是也许您可以获得一些想法,尝试尝试Java媒体框架API(JMF) 他们宣布了对MP3的新支持
我想拥有一个可以在Winforms应用程序中启用/禁用背景音乐的复选框. 我发现了如何使用openfiledialog的目录加载特定文件,但这很糟糕,所以我这样做(在我的PC上工作): if (checkBox7.Checked == true) { System.Media.SoundPlayer player = new System.Media.SoundPlayer(); player.SoundLocation = "PATH"; player.Load(); player.Play(); } 但是,在世界上,我该如何在其他计算机上工作? 我知道我可以将MP3文件放入与程序的同一文件夹中,然后将该文件夹发送给另一个人.但是我已经看到了应用程序内置的mp3/wav(或其他)的程序,并且只有一个EXE文件. 一个示例是针对索尼·维加斯(So
我使用Python和Pyav将MP3转换为WAV. 我的代码如下: ''' def mp3_to_wav(mp3_path, wav_path): inp = av.open(mp3_path, 'r') out = av.open(wav_path, 'w') ostream = out.add_stream("pcm_s16le") for frame in inp.decode(audio=0): frame.pts = None for p in ostream.encode(frame): out.mux(p) for p in ostream.encode(None): out.mux(p) out.close() }} ''' 但是Pycharm告诉我 时间戳在流的数据包中不设置.修复您的代码以正确设置时间戳 编码器没有产生适当的pt,而是构成一些.
我使用iPhone将钢琴音乐录制为.m4a格式.我想将其切碎并将其转换为合适的格式,以用作PHP/HTML网站的背景音乐. 我有以下问题: - 1.最好的格式是哪种格式(例如mp3,wav等)? 2.我应该切碎.m4a,然后转换,还是转换为另一种格式然后切碎? 3.我可以在网页中应用文件,以产生循环效果吗?但是我担心,在每次刷新之后,音乐可能从一开始就播放,这是不需要的. 非常感谢! 解决方案 一般而言,在您的网站上循环音乐是一个坏主意.访问网站的人中有95%喜欢控制正在播放的媒体.而不是嵌入,最好包括一个JavaScript插件,用户可以使用该插件来控制歌曲的音量并寻求位置.大多数插件允许您在加载页面时自动启动一首歌,这将使您具有与嵌入歌曲相同的效果(我仍然建议使用自动启动,但这是您的页面). > 我过去成功使用过的一个插件是 http://www.jplayer.org .它允许音频和视频播放.它还可以使用.m4a文件,因此您不必转换任何内容. 如果
我知道这个问题的 但是我的问题有点偏离. 我想在不使用外部Java库(例如javafx)的情况下播放.mp3文件.这是可能的,如果是这样,您该怎么办?我对图书馆没有什么,我只想出于教育目的而知道. 我知道,使用javax库,您可以很容易地播放.wav文件. public void playSound() { try { AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File("D:/Music/test.wav").getAbsoluteFile()); Clip clip = AudioSystem.getClip(); clip.open(audioInputStream); clip.start(); } catch(Exception e) { e.printStackTrace(); } } 如果您只能使
我目前正在MATLAB中的音频文件进行水印,以进行数学研究项目.到目前为止,我已经能够使用MATLAB中的WavRead读取WAV文件.但是,由于WAV文件非常大,因此所得数据也很大.因此,为了简化这一点,我想知道如何能够在MATLAB中读取MP3文件.到目前为止,我只尝试使用dsp.audiofilereader读取MP3.但是,结果数据仅包含0和其他数字,这显然不是正确的数据.请有人可以帮助我吗?非常感谢! 解决方案 您可以使用此代码: hfr = dsp.AudioFileReader('yourfile.mp3'); hplay = dsp.AudioPlayer('SampleRate',sample_rate_here); while ~isDone(hfr) audio = step(hfr); step(hplay, audio); end
我想使用SOX交换16kHz PCM-> 48kHz WAV. 但是,在Sox中没有应用PCM文件. 所以,我只是将PCM更改为RAW, 进而 SOX -R 16000 -E签名-B 16 -C 1 test.raw -r 48000 out.wav 我可以申请PCM文件不转换原始吗? 解决方案 对于PCM文件,由于PCM是无头的,因此您需要添加'-t RAW'作为 first 参数. sox -t raw -r 16000 -e signed -b 16 -c 1 test.raw -r 48000 out.wav 尝试一下. 还尝试不同的endian设置; -l; -b; -X 虽然一次只使用一个,并且只有不使用一个不起作用. 其他解决方案 无需将输入文件转换为RAW. Sox可以处理PCM文件. sox input.pcm -r 48000 output.wav 输入文件可以是.pcm或.wav. 自WAV文件具有包含音频
naudio库:我正在尝试将MP3文件转换为WAV文件,但是我遇到了一个小错误.我知道怎么了,但是我真的不知道该如何修复它. 这是我正在运行的代码: private void button1_Click(object sender, EventArgs e) { using(Mp3FileReader reader = new Mp3FileReader(@"path\to\MP3")) { using(WaveFileWriter writer = new WaveFileWriter(@"C:\test.wav", new WaveFormat())) { int counter = 0; while(reader.Read(test, counter, test.Length + counter) != 0) { writer.WriteData(test, coun
我需要一些允许我的程序同时播放几个音频文件(.wav和/或.mp3)的东西.如果我可以简单地将文件路径传递到某种方法,那将是理想,它将播放该文件,而不必担心任何细节. 其他要求: 1)我需要能够随时以编程方式启动并停止播放任何音频文件. 2)我需要知道何时播放每个音频文件(通过响应事件或通过某些属性知道声音文件的持续时间(示例,秒等)) 3)此工具必须能够播放任何长度/持续时间的文件. 4)此工具必须能够同时播放多个音频文件(最好同时至少5或6个音频文件). 我已经尝试使用slimdx和sharpdx,但是我找不到任何方法可以通过编程方式确定文件何时停止播放或查找文件的持续时间(长度). 编辑: 我相信我找到了我想要的东西! GSTREAMER似乎正在竭尽所能. http://www.gstreamer.com/ 解决方案 所有音频API都将同时播放多个文件(混合发生在幕后,您无需担心它). 本机API: waveOut
关于逆WAV到MP3转换似乎有很多问题,但没有其他方法.我的情况是,我可以使用隐身术将数据嵌入WAV文件中.我可以将其转换为OGG和背部(密集术是独立的,并且可以在格式转换中生存).我现在想做的是在Audioboo集成中构建.上传到AudioBoo不是问题,以MP3格式检索文件不是问题,而是将这些MP3文件转换回WAV以执行Steg.提取是.有人知道我应该从哪里开始吗? 解决方案 查看 jlayer .它应该在Android上运行.当心,某些电话是synchronized.如果这不起作用,请调整源代码或从整个源中提取转换器模块,因为您只需要MP3到WAV转换器而不是MP3播放器.
我一直使用回环捕获模式捕获音频.捕获的波形是32位波形.我正在努力将其转换为16位波形,因此像Lake这样的编码器可以处理(它说明了不支持的数据格式:0x0003). 我尝试将波流中的位(不是我的强项)从32位转移到16位,但结果听起来仍然扭曲. WAVE32TO16Stream类在这种情况下似乎爆炸了: if(sourcestream.waveformat.encoding!= waveformatencoding.ieeefloat)投掷新的applicationException("仅支撑32位浮点"); 理想情况下,我只想直接捕获至16位,是否没有办法设置捕获位深度?如果没有,有人可以帮助我转换波胁式吗? 可以在此处找到一个捕获的波形的示例: http://dl.dropbox .com/u/454409/test.wav (10MB) 我还将以某种方式安顿下来,用la脚将其编码为MP3,我尝试了每个参数置换,我可以想到它接受波浪文件.有趣的是Aud
i创建WAV(PCM)到MP3转换器.但是输出太快了. 这是转换编码的代码. FILE *pcm = fopen(in_path, "rb"); FILE *mp3 = fopen(out_path, "wb"); int read, write; const int PCM_SIZE = 8192; const int MP3_SIZE = 8192; short int pcm_buffer[PCM_SIZE*2]; unsigned char mp3_buffer[MP3_SIZE]; lame_t lame = lame_init(); lame_set_in_samplerate(lame, sampleRate); lame_set_brate(lame, byteRate); lame_set_num_channels(lame, channels); lame_set_mode(lame, MONO); lame_set_VBR(lame, v
我有WAV数据,我想使用PHP脚本即时转换为MP3. WAV文件源于脚本,因此它不是作为文件开始的. 我可以运行这样的东西: exec( "lame --cbr -b 32k in.wav out.mp3" ); 这将需要我首先写入.Wav到磁盘,从磁盘上读取.mp3,然后在完成后清理.我宁愿不这样做.相反,我将WAV文件存储在$ wav中,我想通过la脚运行它,以便将输出的数据存储在$ mp3中. 我已经看到了FFMPEG PHP库的引用,但是如果可能的话,我宁愿避免为此任务安装任何其他库. 解决方案 看来proc_open()是我想要的.这是我编写和测试的代码的片段,它准确地完成了我要寻找的内容: 其中: $ wav是要转换的原始WAV数据. $ mp3保存转换后的mp3数据, $descriptorspec = array( 0 => array( "pipe", "r" ), 1 => array( "pipe",