我目前正在处理丢失的mp3文件大小以进行流式传输。 我想将mp3的大小减小多少。我最清楚(大概)编码是HE-AAC(AAC +)。他给我32kb / s的mp3立体声,就像原始的320kb / s一样。
我在Ubuntu上。 我找到了一种解决方案。 这是一个NeroAacEnc,它是免费的,而且工作也不错。 但是有一个错误。输入文件必须是“ wav”文件,因此,当我第一次将mp3(400mb)转换为wav时,将获得超过4GB的文件。 然后我无法在NeroAacEnc中打开如此大的文件。
带有-ignorelength的命令不起作用
$ neroAacEnc -ignorelength -br 32000 -if test.wav -of test_nero.mp3
您能帮我一下,找到解决办法的正确方法吗? 其他编码器很难将大小减小到32kb / s,因为这样会降低质量。只有HE-AAC(AAC +)可以为我提供高质量的文件,文件的传输速度为32kb / s。
编辑: 好的,我发现我可以使用AAC +编码器编译ffmpeg。 http://ffmpeg.org/doxygen/trunk/libaacplus_8c-source.html 这是一个来源。但是我不知道该怎么做,有人知道吗?
答案 0 :(得分:0)
他给了我32kb / s的mp3立体声,就像原始的320kb / s。
那是个谎言。谁告诉过你,那绝对不知道他们在说什么。
所以当我第一次将mp3(400mb)转换为wav时,会获得超过4GB的文件
是的,这很可能。不要将其转换为文件,而是将其通过管道传输。 NeuroAacEnc支持-if -
从STDIN读取。
其他编码器很难将大小减小到32kb / s,因为这样会降低质量。
所有编解码器的音质都差于32k。
只有HE-AAC(AAC +)可以为我提供高质量的文件,并且文件的传输速度为32kb / s。
HE-AAC是您最好的选择之一,但仍然不会令人惊奇。还可以考虑Opus。
您可以考虑使用预建的FFmpeg。确实,无论如何,您都不应该从MP3转换为AAC。尽可能获取原始音频,否则您将浪费大量带宽来尝试编码以前的有损编解码器中的伪像。
答案 1 :(得分:0)
好的,经过研究,我最终完成了我打算做的事情。 但是,我们无法拆分和破坏文件。当您尝试合并以AAC +编码的文件时,您会丢失它,因为合并文件的工具会再次以错误的编解码器对文件进行编码。
但是我们可以通过命令将大型(> 4gb)wav文件实时压缩为aac
rm audio.fifo; mkfifo audio.fifo; cat test.wav > audio.fifo & neroAacEnc -ignorelength -br 23000 -if audio.fifo -of test.m4a
此文件使用临时fifo文件。
Obus(ogg)也不错,但是这里https://trac.ffmpeg.org/wiki/Encode/HighQualityAudio#Recommendedminimumbitratestouse 他们向我们展示了使用最低比特率的he-aac可获得最佳质量。
PS。我知道从mp3转换为wav到aac并不是很好的方法,但是我的源文件是mp3。
PS2。我知道AAC +中的32kb / s听起来不像mp3 320kb / s,但随便的用户在流媒体中播放预览中的音乐时,他不会听细节,会很高兴。
答案 2 :(得分:-1)
如果找不到更好的解决方案,请考虑.waw和.aac文件易于拆分和合并。