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来消除音频静音