1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 使用FFmpeg将amr格式文件转换为MP3格式 结果为空的解决办法

使用FFmpeg将amr格式文件转换为MP3格式 结果为空的解决办法

时间:2021-12-02 03:36:07

相关推荐

使用FFmpeg将amr格式文件转换为MP3格式 结果为空的解决办法

问题:

使用FFmpeg将下载的微信语音amr格式转换为MP3格式,生成了MP3文件,但是都是空的文件,是什么原因?

命令行运行转换命令

ffmpeg -y -i amr_path(此处是要转换的amr文件地址) mp3_path(此处为转换后mp3

保存地址)

例如:ffmpeg -y -i /weixin_amr.amr /weixin_mp3.mp3

执行结果如下:

图中的错误原因:是因为没有加载mp3的编码解码器

单独安装完成ffmpeg后,就可以使用ffmpeg进行音频文件格式转换。比如 ./ffmpeg -i /media/1.mp3 /media/1.wav, 通过该命令行可以将/media文件夹下1.mp3文件转换成WAV格式的。

但是反过来 ./ffmpeg -i /media/1.WAV /media/1.MP3 却不能转换成Mp3格式,提示如下错误(找不到编码器):

Stream mapping:

Stream #0:0 -> #0:0 (wav -> ?)

Encoder (codec none) not found for output stream #0:0

如果强行指定编码器 ./ffmpeg -i /media/1.wav -acodec mp3 /media/1.mp3, 仍提示找不到编码器错误:

Unknown encoder ‘mp3’

这是因为,ffmpeg虽然是个开源软件,但因为具体格式的版权原因,它并没有包含所有的编解码格式,或者有个格式只有对应的解码器,但没有编码器,比如 Mp3就只有解码器,能播放Mp3文件,但却没有Mp3的编码器,无法将其它格式转换成Mp3。可以通过命令行 ./ffmpeg -codecs 查询编解码配置,第一个D表示Decoder,该格式能够解码;E表示Encoder,该格式可以编码。从中可以看出Mp3不能编码,Mp2倒是即可解码 也可编码。如何解决这个问题呢?

D A D mp1 MP1 (MPEG audio layer 1)

D A D mp1float MP1 (MPEG audio layer 1)

DEA D mp2 MP2 (MPEG audio layer 2)

D A D mp2float MP2 (MPEG audio layer 2)

D A D mp3 MP3 (MPEG audio layer 3)

D A D mp3adu ADU (Application Data Unit) MP3 (MPEG audio layer 3)

D A D mp3adufloat ADU (Application Data Unit) MP3 (MPEG audio layer 3)

解决方案,使用成熟的第三方编码器和ffmpeg结合。

(具体结合安装方案请查看地址:/weixin_45310179/article/details/99679051)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。