FFmpeg中使用静音音源anullsrc无法使用duration指定时长的问题

Posted Jack_Chai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FFmpeg中使用静音音源anullsrc无法使用duration指定时长的问题相关的知识,希望对你有一定的参考价值。

本文出处:http://blog.csdn.net/chaijunkun/article/details/115406582,转载请注明。由于本人不定期会整理相关博文,会对相应内容作出完善。因此强烈建议在原始出处查看此文。

在FFmpeg官方网站的帮助文档中,针对静音音源anullsrc的说明中描述了如下两个参数:

nb_samples, n
Set the number of samples per requested frames.

duration, d
Set the duration of the sourced audio

其中duration参数用来指定这段静音音频的时长。但使用过程中,该参数并不能正常工作:

ffmpeg -f lavfi -i anullsrc=duration=5s -c:a mp3 empty.mp3

提示:

[Parsed_anullsrc_0 @ 000001c561032180] Option 'duration' not found
[lavfi @ 000001c56102dc80] Error initializing filter 'anullsrc' with args 'duration=5s'
anullsrc=duration=5s: Option not found

查看ffmpeg版本:

ffmpeg version 4.3.1-2020-11-19-essentials_build-www.gyan.dev Copyright (c) 2000-2020 the FFmpeg developers

怀疑是文档比较新,代码比较老。于是去官方代码仓库查看相关变动:

https://github.com/FFmpeg/FFmpeg/commits/master/libavfilter/asrc_anullsrc.c

发现增加duration参数是在:2020年9月5日:

avfilter/asrc_anullsrc: add support to set output duration
@richardpl
richardpl committed on 5 Sep 2020

而4.3.1版本的FFmpeg发布是在2020年7月11日。也就是说如果使用此参数,最低的FFmpeg版本为:4.3.2

虽然我使用的FFmpeg版本编译于2020年11月19日(根据上述版本信息),但是这并不可信,编译者在编译前可能并没有拉取最新代码,这个就有点坑了。

以上是关于FFmpeg中使用静音音源anullsrc无法使用duration指定时长的问题的主要内容,如果未能解决你的问题,请参考以下文章

使用带有silencedetect的FFMPEG来消除音频静音

使用ffmpeg在特定时间向wav文件添加静音[重复]

使用ffmpeg 操作音频文件前后部分静音移除.

FFmpeg 检查音频通道是不是静音

如何让 FFmpeg 在单循环静音视频中自动注入 mp3 音轨?

错误记录Melodyne 报错 ( 无法打开音频文件 )