User-Profile-Image
hankin
  • 5
  • centos7
  • docker
  • mysql
  • PostgreSQL
  • git/gitlab
  • ELK
  • python
    • python-Tornado
    • python-django
  • redis
  • nginx
  • kvm
  • proxmox
  • mongo
  • kubernetes
  • prometheus
  • GlusterFs
  • nfs
  • freeswitch
  • httpd
  • shell脚本
  • linux
  • fastdfs
  • nextcloud
  • openssl
  • openvpn
  • rabbitmq
  • sqlite
  • svn
  • java
  • ubuntu
  • vue2
  • wordpress
  • php
  • IOT物联网
  • 项目
  • 故障处理
  • 树莓派
  • 博客存档
  • 未分类
  • 杂项
  • #1742(无标题)
  • 新视野
  • 分类
    • 项目
    • 树莓派
    • 杂项
    • 未分类
    • 新视野
    • 故障处理
    • 博客存档
    • wordpress
    • vue2
    • ubuntu
    • svn
    • sqlite
    • shell脚本
    • redis
    • rabbitmq
    • python-django
    • python
    • proxmox
    • prometheus
    • PostgreSQL
    • php
    • openvpn
    • openssl
    • nginx
    • nfs
    • nextcloud
    • mysql
    • mongo
    • linux
    • kvm
    • kubernetes
    • java
    • IOT物联网
    • httpd
    • GlusterFs
    • git/gitlab
    • freeswitch
    • fastdfs
    • ELK
    • docker
    • centos7
  • 页面
    • #1742(无标题)
  • 友链
      请到[后台->主题设置->友情链接]中设置。
Help?

Please contact us on our email for need any support

Support
    首页   ›   shell脚本   ›   正文
shell脚本

wav-mp3

2022-10-28 23:33:39
831  0 0

wav mp3

ffmpeg:
#https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
yum install epel-release -y
yum update -y
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
yum install ffmpeg ffmpeg-devel
ffmpeg

lame
wget https://udomain.dl.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz --no-check-certificate
tar -zxvf lame-3.100.tar.gz && cd lame-3.100 && ./configure --enable-static --enable-shared && make && make install && lame

固定码率 联合立体声 128kbps编码:
% lame sample.wav sample.mp3

固定码率 联合立体声 128kbps编码,较高质量:(推荐)
% lame -h sample.wav sample.mp3

快速编码,较低质量(无噪音修整)
% lame -f sample.wav sample.mp3

WAV到mp3
ffmpeg -i audio.wav -acodec libmp3lame audio.mp3
ffmpeg -i "$i" -acodec libmp3lame "${i%.wav}.mp3"

ffmpeg -i "$i" -codec:v copy -codec:a libmp3lame -q:a 0 "${i%.wav}.mp3"
-i: 输入文件路径
-codec:v copy:输出文件的参数尽量拷贝输入文件的参数,确保一致
-codec:a libmp3lame:使用 libmplame 编码器编码 mp3
-q:a 0:输出最高质量,0最高,9最低
${i%.wav}.mp3:删除文件名末尾的.wav,然后在结尾加上.mp3

目录结构
.
└── mnt
└── recording
└── fs
├── 5f3a23d98febf106ba000000
│   └── 2021-01-04
│   └── 18091798505
│   ├── 59b4150c-4e40-11eb-a23e-1ba9fa199dca_18091798505_18576478856_20210104115319.wav
│   ├── aaf7a9c4-4e77-11eb-a39f-1ba9fa199dca_18091798505_18576478856_20210104182914.wav
│   ├── c8d71974-4e37-11eb-80e0-1ba9fa199dca_18091798505_18576478856_20210104105202.wav
│   └── fb3dcf68-4e3f-11eb-9729-1ba9fa199dca_18091798505_18576478856_20210104115047.wav
├── 5f8e387d3143334c17000000
│   ├── 2021-01-04
│   │   ├── 13017451380
│   │   │   ├── 036fcb1c-4e2e-11eb-a71b-1ba9fa199dca_13017451380_18785034585_20210104094204.wav

统计当前目录下文件的个数(不包括目录)
$ ls -l | grep "^-" | wc -l
统计当前目录下文件的个数(包括子目录)
$ ls -lR| grep "^-" | wc -l

ls -lR 08-ff | grep "^-" | wc -l

查看某目录下文件夹(目录)的个数(包括子目录)
$ ls -lR | grep "^d" | wc -l

[root@cdxxg-5 recordings]# ls -lR 05/ | grep "^-" | wc -l
342601
268168
74434

if [ $? -eq 0 ]
then
echo command is exist
else
echo command not exist
fi

if [ $? -ne 0 ]
then
mv

wav录音格式转mp3

使用说明: sh xx.sh "wav录音位置" "指定mp3存放位置"

例: "sh xx.sh /usr/local/freeswitch/recordings/recording-bak/2021/01/mnt/recording/fs" "/te"

echo "### wav录音格式转mp3"
echo "### 使用说明: sh xx.sh wav录音位置 指定mp3存放位置"
echo "### 例: sh xx.sh /usr/local/freeswitch/recordings/recording-bak/2021/01/mnt/recording/fs /te"
echo " "
echo "原始wav录音文件位置 $1"
echo "新mp3录音文件位置 $2"
sleep 3

wav_way=$1
mp3_way=$2

$1 : 原始录音文件位置

$2 : 原始录音文件位置

转码

function wavtomp3() {
file=$1
if [ "${file##*.}"x = "wav"x ];then
lame -S $1 $mp3_way/$2/$3/$4/${5%.wav}.mp3
if [ $? -ne 0 ]
then
echo $1 >> ~/lame.txt
cp $1 $mp3_way/$2/$3/$4/$5
fi
#echo "ok $1"
fi
}

遍历录音文件

function main(){
for organization in ls $wav_way;do
echo "_____ $organization" >> ~/lame.log
for date_time in ls $wav_way/$organization;do
echo $date_time
for user in ls $wav_way/$organization/$date_time;do
echo $user
mkdir -p $mp3_way/$organization/$date_time/$user/
for recording in ls $wav_way/$organization/$date_time/$user;do
#echo $recording
way=$wav_way/$organization/$date_time/$user/$recording
wavtomp3 $way $organization $date_time $user $recording &
done
wait
done
#waite
done

    done

}

运行,记录日志

function start(){
touch ~/lame.log
touch ~/lame.txt
echo "############################################################################### $wav_way" >> ~/lame.log
echo date >> ~/lame.log

    main $wav_way

    echo `date` >> ~/lame.log

}

start

评论 (0)

点击这里取消回复。

欢迎您 游客  

Copyright © 2025 网站备案号 : 蜀ICP备2022017747号
smarty_hankin 主题. Designed by hankin
主页
页面
  • #1742(无标题)
博主
tang.show
tang.show 管理员
linux、centos、docker 、k8s、mysql等技术相关的总结文档
210 文章 2 评论 194512 浏览
测试
测试