【FFMpeg 命令行】基本应用
1. pcm转wav
ffmpeg -f s16le -ar 16k -ac 1 -i input.pcm output.wav
-f format 可以用-formats查看支持的格式,s16le代表pcm16位有符号小端存储
-ar audio rate 采样率,单位是Hz,每秒的采样数
-ac audio channel数,一般默认是1
-i 输入
2. wav转pcm
ffmpeg -i input.wav -f s16le -ar 48000 -ac 1 -acodec pcm_s16le output.pcm
-acodec 编码器格式
3. wav重采样
ffmpeg -i input.wav -ar 48000 output.wav
4. 把两个单通道的wav合成一个双通道的wav
ffmpeg -i left.wav -i right.wav -filter_complex "[0]apad[FL];[FL][1]amerge[aout]" -map "[aout]" out.wav
滤镜查询地址 https://ffmpeg.org/ffmpeg-filters.html
-filter_complex 后面加一个滤镜
apad 静音填充 输入[0]静音填充输出为[FL]
amerge 两个或多个音频合并为一个多声道流 [FL][0]合成为[aout]
-map 映射输出到输出文件
5. 两个音频叠加
ffmpeg -i ${speechpath} -i ${noisepath} \
-filter_complex \
"amovie=${speechpath} [s];amovie=${noisepath} [n]; \
[s] adelay=${delay}ms [s1]; \
[n][s1]amix=inputs=2:duration=longest:dropout_transition=3:weights='${a} ${b}'" \
${outpath}
● amovie 相当于给输入重命名,否则用[0] [1]
● 分号用来把单个filter隔开,冒号分割参数
● adelay是将输入延迟
● amix用来合成
● 思路为通过三个随机数,即延迟和两个权重来进行随机控制,将语音随机延迟之后和噪声进行合成
6. 获取音频的长度,并转化为毫秒
duration=$(ffmpeg -i ${speechpath} 2>&1 \| grep 'Duration' | cut -d ' ' -f 4 | sed s/,//)
ss=$(awk "BEGIN{print ${duration:0:2}*3600000+ \${duration:3:2}*60000+ \${duration:6:2}*1000+ \${duration:9:2}*10}") #语音毫秒数
● 把ffmpeg的输出重定向,获取到Duration的行,使用cut命令用空格分开,得到第四列,把逗号删除掉
● 毫秒数直接用awk来计算
7. 干掉音频前后的静音部分
在处理正样本语音部分很有用
ffmpeg -i ${voicedir}/${filename} -filter_complex \
silenceremove=start_periods=1:start_duration=0.1:start_threshold=-50dB: \
stop_periods=-1:stop_duration=0.1:stop_threshold=-50dB \
${outdir}/${filename}
● start开头的一组参数是干掉音频开头小于-50dB且时长大于0.1s的静音
● stop开头的一组是干掉完开头之后,再干掉结尾小于-50dB且长度大于0.1s的静音
● stop只有在start设置了的情况下有效
8. 截取前后两部分并将后前填充0
ffmpeg -i input.wav -filter_complex "[0]atrim=0:1.05[l];[l]apad=whole_len=32000" out.wav
ffmpeg -i input.wav -filter_complex "0[atrim]=1.05:2[r];[r]adelay=1050" out.wav
● atrim 的单位是秒 支持小数
● adelay单位是ms
● apad的单位是采样数
【FFMpeg 命令行】基本应用相关推荐
- 【FFmpeg】Windows 搭建 FFmpeg 命令行运行环境
文章目录 前言 一.下载 FFMPEG 二.拷贝可执行文件 三.拷贝动态库文件 四.运行 ffmpeg 命令 总结 前言 Android 中需要使用到 FFMPEG , 先在 Windows 中搭建一 ...
- 使用ffmpeg 命令行解码并显示像素格式为.raw图像
使用ffmpeg 命令行解码并显示像素格式为.raw图像,命令如下: ffmpeg -vcodec rawvideo -f rawvideo -pix_fmt bayer_gbrg8 -s 2448* ...
- FFmpeg命令行(ffmpeg、ffplay、ffprobe)
ffmpeg命令行 A command line tool to convert multimedia files between formats. 名称 命令 解释 查看当前设备输入信息 ffmpe ...
- FFmpeg命令行解析
目录标题 一.引言(Introduction) 1.1 FFmpeg简介(Overview of FFmpeg) 1.2 FFmpeg命令行的应用场景(Application Scenarios of ...
- Android 下使用 FFmpeg 命令行工具与问题排查
目录 FFmpeg 命令行工具 将相关文件加入到项目中 修改 ffmpeg 源码 问题排查 上一篇文章 中,我们已经成功编译了 FFmpeg 的主要库并集成到了我们的 Android 应用中.我们暂时 ...
- FFmpeg命令行工具系列二---转码流程及过滤器
一.概述 在FFmpeg命令行工具系列一中,对FFmpeg的命令行工具FFmpeg.exe进行了简单的介绍,并举出了几个简单的例子.在这一章中,将进行一次详细的介绍,主要是对转码过程和过滤器进行介绍. ...
- [总结]FFMPEG命令行工具之ffmpeg详解
目录 0 前言 1 语法 Synopsis 2 描述 Description 3 详细描述 Detailed description 3.1 滤镜 Filtering 3.1.1 简单滤镜图 Simp ...
- FFmpeg命令行,从小白入门到收藏吃灰——基础归纳
1.查看版本号和功能支持 到官网 http://ffmpeg.org/download.html 下载已经编译好的ffmpeg,选用的是Windows环境下.的BtbN/FFmpeg-Builds/A ...
- [总结]FFMPEG命令行工具之ffplay详解
目录 0 前言 1 语法 Synopsis 2 描述 Description 3 选项 Options 3.1 流指定器 Stream specifiers 3.2 通用选项 Generic opti ...
- [总结]FFMPEG命令行工具之ffprobe详解
目录 0 前言 1 语法 Synopsis 2 描述 Description 3 选项 Options 3.1 流指定器 Stream specifiers 3.2 通用选项 Generic opt ...
最新文章
- lisp修改天正标高值_【求教】如何批量修改天正字体
- dfa转正则表达式_从0到1打造正则表达式执行引擎(二)
- eclipse项目导入到AndroidStudioc报错
- PHP命令行脚本接收传入参数的三种方式
- 用JAVA实现小学四则运算
- linux64位版本 小米球内网穿透后台启动 centos8 安装 screen 报错:No match for argument: screen
- 学校图书馆管理系统/图书管理系统的设计与实现
- js正则表达式限定输入框内容为非负数
- android 多个按键精灵,Android 一种通用的按键精灵的实现思路
- 终身教职让美国研究型大学称霸世界,却把中国「青椒」卷怕了!
- OpenStack Placement部署(5)
- Greenplum集群部署和架构优化,我总结了5000字的心得
- gta5因为计算机丢失,GTA5丢失MSVCR100.dll怎么办 修复方法介绍
- extundelete工具恢复rm -rf 删除的目录(ext4、ext3)
- 李晓慧:如何利用MongoDB打造爆款小程序
- HTML外部样式表如何引入CSS样式
- Ubuntu18.04|20.04 idea安装Consolas字体
- [工具] 护眼宝 – 傻瓜版屏幕蓝光过滤应用[Win/Android]
- zencart商品批量设置为免运费
- 【OpenAirInterface】分立部署核心网与容器化ueransim仿真基站