linux命令实现音频格式转换和拼接的方法
程序员文章站
2022-09-25 20:40:49
安装ffmpeg flac
eric@ray:~$ sudo apt install ffmpeg flac
安装lame faac
eric@r...
安装ffmpeg flac
eric@ray:~$ sudo apt install ffmpeg flac
安装lame faac
eric@ray:~$ sudo apt install lame faac
将一个后缀为.ape格式的视频转换成m4a(mp4)格式
1、首先用ffmpeg命令或者flac 命令将它转换成mav格式,再用lame将wav转换成mp4格式
eric@ray:~/music$ ffmpeg -i gracie-theme.ape gracie-theme.wav ##或者 eric@ray:~/music$ flac -d gracie-theme.flac gracie-theme.wav
2、再使用lame命令 压缩成mp3
##使用lame命令:使用vbr动态码率压缩,0表示质量最高,9表示质量最低,默认为4 eric@ray:~/music$ lame -v gracie-theme.wav ##或者使用faac编码得到m4a(mp4)、mp3格式文件:100表示质量最高 100% eric@ray:~/music$ faac -w -q 100 gracie-theme.wav -o gracie-theme.mp4
3、也可以使用ffmpeg压缩得到m4a格式:
#这里使用的是ffmpeg内置的aac编码起,设置码率为固定的320k eric@ray:~/music$ ffmpeg -i gracie-theme.wav -strict experimental -c:a aac -b:a 320k gracie-theme.m4a #还可以使用ffmpeg将解压和压缩为一条命令:-map_metadata 表示保留歌曲元数据,即名称、演唱者等 eric@ray:~/music$ ffmpeg -i gracie-theme.flac -ab 320k -map_metadata 0 gracie-theme.m4a
4、批量脚本
#!/bin/bash for file in *.ape; do ffmpeg -i "$file" temp.wav; lame -b 320 temp.wav "${file%.*}.mp3"; rm temp.wav done
对于一个ape/flac文件包含多首歌曲
这种情况,通常会有一个cue文件,这个文件中包含这个ape/flac文件的专辑名称、演唱者名称、还有每首歌曲的名称、时间范围。可以先用上面的方法将整个文件转化为mp3格式之后,再用mp3splt工具进行分割。
将cue文件分割为mp3:
eric@ray:~/music$mp3splt -c song.cue -o @n.@t song.mp3
常用参数:
@a:歌手名称
@b:专辑名称
@t:歌曲标题
@n:音轨序号
音频合并
#音频合并(两个音频重叠) eric@ray:~/music$ffmpeg -i first.mp3 -i second.mp3 -filter_complex amix=inputs=2:duration=first:dropout_transition=2 -f mp3 third.mp3 #两个音频拼接 eric@ray:~/music$ffmpeg -i d1.mp3 -i d2.mp3 -filter_complex '[0:0] [1:0] concat=n=2:v=0:a=1 [a]' -map [a] j5.mp3 #三个音频拼接 eric@ray:~/music$ffmpeg -i 片头.wav -i 内容.wav -i 片尾.wav -filter_complex '[0:0] [1:0] [2:0] concat=n=3:v=0:a=1 [a]' -map [a] 合成.wav
参考资料
ffmpeg and aac encoding guide https://trac.ffmpeg.org/wiki/encode/aac
以上这篇linux命令实现音频格式转换和拼接的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
下一篇: 蔬菜如何洗的干净彻底呢
推荐阅读
-
Linux下清空用户登录记录和命令历史的方法分享
-
Python实现Tab自动补全和历史命令管理的方法
-
linux shell之控制台打印各种颜色字体和背景的实现方法
-
C#实现DataTable,List和Json转换的方法
-
linux下make命令实现输出高亮的方法
-
Linux在批量服务器管理中实用的PS1命令提示符格式实现方法
-
Oracle实现字符串拼接和分离功能的方法(WM_CONCAT函数)
-
Linux初学(CnetOS7 Linux)之切换命令模式和图形模式的方法
-
CentOS实现将php和mysql命令加入到环境变量中的几种方法
-
linux系统下将php和mysql命令加入到环境变量中的方法