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

本文介绍了FFmpeg库中anullsrc滤镜的duration参数在4.3.2及以上版本的使用方法,指出早期版本可能存在的兼容问题,并提供了相关版本信息和解决建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文出处:http://blog.youkuaiyun.com/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日(根据上述版本信息),但是这并不可信,编译者在编译前可能并没有拉取最新代码,这个就有点坑了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值