怎么通过ffmpeg将音频文件转换成mp3 转

怎么通过ffmpeg将音频文件转换成mp3 转,第1张

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

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

Stream mapping:

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

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

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

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)

我的第一个方法是自己写代码来完成。源码文件中,Allcodecsc中对各个格式进行注册,先修改Mp3的注册行,改为同时注册解码器和编码器:

REGISTER_ENCDEC (MP2, mp2);

REGISTER_DECODER (MP2FLOAT, mp2float);

REGISTER_DECODER (MP3, mp3) // 此行修改为 REGISTER_ENCDEC (MP3, mp3)

然后新增Mp3编码器的实现Struct,里面Init函数、encode函数、close函数使用Mp2的函数,因为我也不知道如何去实现Mp3的函数,或者说到代码实现级我也不知道Mp3和Mp2的区别在哪。

AVCodec ff_mp3_encoder = {

name = "mp3",

type = AVMEDIA_TYPE_AUDIO,

id = CODEC_ID_MP3,

priv_data_size = sizeof(MpegAudioContext),

init = MPA_encode_init,

encode = MPA_encode_frame,

close = MPA_encode_close,

sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},

supported_samplerates= (const int[]){44100, 48000, 32000, 22050, 24000, 16000, 0},

long_name = NULL_IF_CONFIG_SMALL("MP3 (MPEG audio layer 3)"),

defaults = mp3_defaults,

};

重新编译上线。 用命令行/ffmpeg -i /media/1WAV /media/1MP3 试了一下,能成功生成1mp3文件,文件也能播放。似乎没有问题了,单用 file /media/1mp3 查看了一下,发现文件不是Mp3格式的,而是Mp2格式的:

/media/1mp3: MPEG ADTS, layer II, v1, 128 kbps, 441 kHz, Stereo

很遗憾,自行修改代码的方式行不通,因为不是每个编解码格式协议的专家,自行修改代码失败的风险很大,不仅是Mp3,还有一些其他格式比如AMR OGG H263是没有编码器的。所以,第二个方案,使用成熟的第三方编码器和ffmpeg结合。

Mp3比较好的开源第三方库是libmp3lame(简称Lame)。我下了一个最新版本(3994)的Lame源码,编译它:

首先配置: /configure --prefix=/shared --enable-shared --enable-static

然后编译: make

make install

生成文件: 动态链接库 /shared/lib/libmp3lameso 和 静态链接库 /shared/lib/libmp3lamea。这里只需要使用动态链接库,将so文件拷贝到/lib中,这个文件夹是动态链接库的默认搜索路径, 让ffmpeg运行时可以找到。

然后对ffmpeg配置libmp3lame: /configure --enable-libmp3lame

重新编译ffmpeg,运行转化命令,看看效果如何。

首先执行 /ffmpeg -codecs 查看可用编解码的变化,可以看到多出了libmp3lame编码器,带E的:

D V D lagarith Lagarith lossless

EA libmp3lame libmp3lame MP3 (MPEG audio layer 3)

EV ljpeg Lossless JPEG

D V D loco LOCO

然后执行 /ffmpeg -i /media/1WAV /media/1MP3, 生成1mp3,用File命令查看,确实是Mp3文件。

/media/1mp3: Audio file with ID3 version 240, contains: MPEG ADTS, layer III, v1, 128 kbps, 441 kHz, Stereo

大功告成,问题解决。

也可在命令行中指定编解码生成Mp3文件:/ffmpeg -i /media/1WAV -acodec libmp3lame /media/1MP3

这是脚本。。。。

先是判断~/euca/mykeypriv 这个文件存不存在,

不存在 就建一个目录 ~/euca

然后建一个文件 ~/euca/mykeypriv

euca-add-keypair mykey > ~/euca/mykeypriv

这个应该是使用这个文件,具体就搞不清楚了

不知道你问的什么意思,mysql中用户的权如下:

Select_priv。确定用户是否可以通过SELECT命令选择数据。

Insert_priv。确定用户是否可以通过INSERT命令插入数据。

Update_priv。确定用户是否可以通过UPDATE命令修改现有数据。

Delete_priv。确定用户是否可以通过DELETE命令删除现有数据。

Create_priv。确定用户是否可以创建新的数据库和表。

Drop_priv。确定用户是否可以删除现有数据库和表。

Reload_priv。确定用户是否可以执行刷新和重新加载MySQL所用各种内部缓存的特定命令,包括日志、权限、主机、查询和表。

Shutdown_priv。确定用户是否可以关闭MySQL服务器。在将此权限提供给root账户之外的任何用户时,都应当非常谨慎。

Process_priv。确定用户是否可以通过SHOW

PROCESSLIST命令查看其他用户的进程。

File_priv。确定用户是否可以执行SELECT INTO OUTFILE和LOAD DATA

INFILE命令。

Grant_priv。确定用户是否可以将已经授予给该用户自己的权限再授予其他用户。例如,如果用户可以插入、选择和删除foo数据库中的信息,并且授予了GRANT权限,则该用户就可以将其任何或全部权限授予系统中的任何其他用户。

References_priv。目前只是某些未来功能的占位符;现在没有作用。

Index_priv。确定用户是否可以创建和删除表索引。

Alter_priv。确定用户是否可以重命名和修改表结构。

Show_db_priv。确定用户是否可以查看服务器上所有数据库的名字,包括用户拥有足够访问权限的数据库。可以考虑对所有用户禁用这个权限,除非有特别不可抗拒的原因。

Super_priv。确定用户是否可以执行某些强大的管理功能,例如通过KILL命令删除用户进程,使用SET

GLOBAL修改全局MySQL变量,执行关于复制和日志的各种命令。

Create_tmp_table_priv。确定用户是否可以创建临时表。

Lock_tables_priv。确定用户是否可以使用LOCK

TABLES命令阻止对表的访问/修改。

Execute_priv。确定用户是否可以执行存储过程。此权限只在MySQL

50及更高版本中有意义。

Repl_slave_priv。确定用户是否可以读取用于维护复制数据库环境的二进制日志文件。此用户位于主系统中,有利于主机和客户机之间的通信。

Repl_client_priv。确定用户是否可以确定复制从服务器和主服务器的位置。

Create_view_priv。确定用户是否可以创建视图。此权限只在MySQL

50及更高版本中有意义。关于视图的更多信息,参见第34章。

Show_view_priv。确定用户是否可以查看视图或了解视图如何执行。此权限只在MySQL

50及更高版本中有意义。关于视图的更多信息,参见第34章。

Create_routine_priv。确定用户是否可以更改或放弃存储过程和函数。此权限是在MySQL

50中引入的。

Alter_routine_priv。确定用户是否可以修改或删除存储函数及函数。此权限是在MySQL

50中引入的。

Create_user_priv。确定用户是否可以执行CREATE

USER命令,这个命令用于创建新的MySQL账户。

Event_priv。确定用户能否创建、修改和删除事件。这个权限是MySQL

516新增的。

Trigger_priv。确定用户能否创建和删除触发器,这个权限是MySQL 516新增的。

给你找了点相关的解答,希望有帮助吧~

服务器正常运行CUP一般应该都在60%以下,有时候CUP出现上下波动很大,或者是服务器突然很卡,或很慢查看任务管理器,可以发现很多的w3wpexe消耗CPU,结束后立即有新的w3wpexe出现占CPU,管管理员在这种情况只好重新启动IIS服务,奇怪的是,重新启动IIS服务后一切正常,但可能过了一段时间后,问题又再次出现了。

直接原因:

有一个或多个ACCESS数据库在多次读写过程中损坏,微软的MDAC系统在写入这个损坏的ACCESS文件时,ASP线程处于BLOCK状态,结果其他线程只能等待,IIS被死锁了,全部的CPU时间都消耗在w3wpexe中。

解决办法:1

在iis管理器里面设置多个应用程序池, 并把虚拟主机站点分别加入应用程序池。在多应用程序池的情况下,每个应用程序池会对应生成一个w3wpexe文件。通过任务管理器可以查看到所有w3wpexe占用cpu利用率情况。 通过iis管理器打开应用程序池,可以逐个停掉应用程序池。一边停应用程序池,一边在任务管理器里面观察哪个w3wpexe的cpu利用率一下子从降下来,cpu利用率恢复正常。这样可以判断是那个应用程序池出了问题。然后可以再建立多个应用程序池,每一个应用程序池对应一个站点。这样逐个停应用程序池,就可以确定到底是哪个网站出问题。最有问题的往往是计数器类的ACCESS文件,例如:“COUNTMDB” ,“COUNTASP”,找到这个文件后,可以删除它,或下载下来,用ACCESS2000修复它,问题就解决。

解决办法:2

w3wpexe占用cpu过高查询方法,很多web提供商最头疼的问题,在任务管理器经常出现w3wpexe占cup过高,导致整台服务器受影响解决办法如下:

1先把任务管理器打开,发现那个w3wpexe占cup关高就结束进程

2在我的电脑-管理-事件查看器-系统-会找到关w3wpexe的错误报告,把程序池名字记录下,再把具体时间记录下来(如125956)

3在到系统上面的安全性找到对应时间(如125956)登陆过的用户

4打开iis找到2中查询到的程序池,和3查询到登陆过的用户,取交集,即可精确查到是那个web占点站cup

在某台DB上准备运行一个SQL语句,就是用SELECT INTO OUTFILE把查询结果写入到文件的时候提示以下信息:

The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

出现这个问题的原因是因为启动MySQL的时候使用了--secure-file-priv这个参数,这个参数的主要目的就是限制LOAD DATA INFILE或者SELECT INTO OUTFILE之类文件的目录位置,我们可以使用

SELECT @@globalsecure_file_priv;

查询到你当前设置的路径,默认应该是/var/lib/mysql-files

如果要解决这个问题,我们可以通过下面2种方式:

将你要导入或导出的文件位置指定到你设置的路径里

由于不能动态修改,我们可以修改mycnf里关于这个选项的配置,然后重启即可。

欢迎分享,转载请注明来源:品搜搜测评网

原文地址:https://pinsoso.cn/shuma/807337.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-08
下一篇2023-08-08

随机推荐

  • 十大公认的美白身体乳

    十大公认的美白身体乳:凡士林美白身体乳、三豆奇异果身体乳、sesderma美白身体乳、Olay美白身体乳、AlphaHydrox果酸身体乳、ASDM强效美白身体乳、森田全净白保湿乳液、日本DAISO大创美白乳液、妮维雅美白身体乳、MENEM

    2024-04-15
    38100
  • 有没有人听说过艾纳菲这个牌子的护肤品呢?套装的价格方面是多少钱呢?效果好么?对比起兰蔻产品那个好用

    你能买到艾纳菲品牌化妆品的地方,那里的服务人员就会告诉你药监局备案码告诉你怎么查,正规厂家产品至于价格方面,每个区域都不同对比兰蔻,没有可比性,兰蔻基础保养艾纳菲专业线,更有针对性,美白效果很好安全。艾纳菲护肤品是正规厂家的产品,定位比较高

    2024-04-15
    43300
  • 多芬小白碗和妮维雅蓝罐哪个好用

    妮维雅蓝罐好用。1、多芬小白碗,这款身体乳丰富营养成分可以锁水,但敏感及不可使用,对于室内干燥的冬季很是实用。2、妮维雅蓝罐是一款面霜,它的成分除了拥有专利配方Eucerit,能持久滋润柔软肌肤,干燥的皮肤和部位都能得到有效的保湿和滋润的成

    2024-04-15
    49300
  • 男生沐浴露哪个最好用

    男士沐浴露有很多品牌和种类,各自有不同的功效和适用场景。以下是一些备受推崇且适合男性使用的沐浴露:AXE黑木香男士沐浴露:AXE系列沐浴露推出多种款式,其中黑木香是最受欢迎的一款,散发出烟熏木质的清新味道,能够让皮肤保持滋润柔软。NIVEA

    2024-04-15
    38500
  • 男士洗面奶曼秀雷敦和妮维雅哪个好

    男士洗面奶是男性护肤品中不可或缺的一环,它能够有效清洁脸部皮肤,去除油脂和污垢,帮助男士拥有清爽干净的肌肤。而在众多品牌中,曼秀雷敦和妮维雅都是备受瞩目的选项。在曼秀雷敦和妮维雅之间,哪个更好呢?我们来了解一下曼秀雷敦洗面奶。这是一款在男士

    2024-04-15
    33000
  • 完美日记钻石高光哪个色号好看

    01 银白:FB钻石高光平替本替辽,blingbling的银白色钻闪,上脸像碎钻一样,精致又闪耀,仙女下凡了!!03 香槟金:超日常的浅香槟金,上脸光泽感细腻自然,百搭不挑妆容,值得pick!05 香槟粉:草莓绵绵冰吗!和mac的dazzl

    2024-04-15
    26500
  • 时光润颜发光水好用吗

    题主是否想询问“萱郦冻龄时光润颜发光水好用吗”?好用。萱郦冻龄时光润颜发光水,利用纤连蛋白成分的强大修护再生作用,加速细胞生长,强化角质层,能够有效提升肌肤弹性值,恢复年轻健康态,为皮肤补充流失的水分和支撑肌肤的胶原蛋白,起到基底修护的效果

    2024-04-15
    44400

发表评论

登录后才能评论
保存