老师这章开篇说滤镜可以做音视频倍速播放,我上网搜了一些,自己写代码试了下,视频流用了setpts滤镜,结果是好的,最后获取的frame的pts确实按照设置的倍数改变了,音频用atemp, 但是av_buffersrc_add_frame报错-1163346256, av_err2str(-1163346256) 是Not yet implemented in FFmpeg, patches welcome。 老师有时间看看能不能看下哪错了
abuffer 的配置参数是
time_base=1/44100:sample_rate=44100:sample_fmt=fltp:channel_layout=stereo:channels=2
"atempo"的配置参数是tempo=2.0
"abuffersink"的配置参数是
enum AVSampleFormat sample_fmts[] = {AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_NONE};
int64_t channel_layouts[2] = {3, -1 };
int channels[2] = {2, -1 };
int sample_rates[2] = {44100, -1 };
// AV_SAMPLE_FMT_FLTP、 3、 2、 44100 这些参数都是编码器上下文获取的
终端打印音频流信息
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 125 kb/s (default)
配置过程也没报错,avfilter_link() API 这三个link 也没有报错,但是av_buffersrc_add_frame就报错了,我看
av_log_set_callback(log_callback)中打印的错误信息是
Format change is not supported
错误信息中的format指的是sample_fmt吗?, 可是我配置的都是音频中的AV_SAMPLE_FMT_FLTP,而且解码出来的音频帧format 也是AV_SAMPLE_FMT_FLTP, 这不都是匹配的吗😂😂😂。