欢迎光临散文网 会员登陆 & 注册

使用ffmpeg与soundstretch对视频进行简单变声处理

2022-04-14 04:43 作者:话废文不明  | 我要投稿

简单的基于命令行的方案(不是实时的), 下载 FFmpeg https://github.com/BtbN/FFmpeg-Builds/releases 和 SoundStretch http://www.surina.net/soundtouch/download.html 

解压至全局或某目录

创建一个.sh脚本文件(因为有多行命令), 文件内容如下


    # 命令行参数,  文件名

    filename="$1"

    

    # 不要后缀名

    prefix="${filename%.*}"

    echo "$prefix"

    

    # 使用ffmpeg从视频中提取音频

    ./ffmpeg.exe -i "$filename" -f wav -ar 16000 inputpitch.wav

    

    # 使用soundstretch 进行变调, -n 变低沉, +n 变高昂? 我乐理很烂

    ./soundstretch.exe inputpitch.wav "$prefix".wav -pitch=-2

    

    # ffmpeg 提取的音频 音量很小(我试的是很小),所以音量得调大

    ./ffmpeg.exe -i "$prefix".wav -filter:a "volume=5" "$prefix"_v.wav

    

    # 把新的音频放进原视频中,得到最终的视频

    ./ffmpeg -i "$filename" -i "$prefix"_v.wav -c:v copy -c:a aac -strict experimental -map 0:v:0 -map 1:a:0 "$prefix"_final.mp4


执行方式

      bash file_name_to_pitch.sh  target_video_file_name.whatever_postfix_mp4_mkv_api_idontknow


注1: 我是在windows环境下使用git bash,  windows自带的command prompt对应的.bat文件 或 powershell 不会。如果是在linux/mac环境下, 自然是要把 .exe 程序后缀名删掉

注2: 只是为了好玩, 虽然有点晚了, 但可能可以考虑新账号新方向时使用?


注3: 我最初就是想做变声处理的, 但因为个人搜索思维问题, 愣是没搜对关键字,也就没搜到方案。 有请教过@日常躺平 大佬,他用的 OBS studio录屏,加 vst 和pitchproof 插件。 我找了半天,成是成功了, 但我平时都用ocam录屏的(傻瓜式操作), OBS对我来说还是太高端了。

刚才一通乱搜ffmpeg的加速减速,并没有变声, 但不小心 搜到 SoundStretch基于命令行的可以修改音调的工具,于是又试了一通, 成功搞定!

使用ffmpeg与soundstretch对视频进行简单变声处理的评论 (共 条)

分享到微博请遵守国家法律