请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

linux下重采样的问题

老师:
1.我的Linux下每次采样的包pkt.size = 64,那我单通道采样个数,怎么计算?
2.然后,linux系统好像输入采样格式也是:AV_SAMPLE_FMT_S16吧?
3.swr_convert(swr_ctx, //重采样的上下文
dst_data, //输出结果的缓冲区
??, //每个通道的采样数
(const uint8_t **)src_data, //输入的缓冲区
??); //输入单个通道的采样数
这个问号是填多少?我填了:64/2/2=16,好像不对,重采样后,播放一直是一个高频的声音

请老师指点一下,谢谢

正在回答 回答被采纳积分+3

1回答

李超 2021-11-04 16:43:01

64数据太少了,无法重采样,你要把他们先缓冲起来,比如攒到1024或2048 再进行重采样

0 回复 有任何疑惑可以回复我~
  • 提问者 慕仰3341976 #1
    如果缓冲到2048,那就是每个通道的数:2048/2/2=512吗?
    回复 有任何疑惑可以回复我~ 2021-11-04 16:45:10
  • 提问者 慕仰3341976 #2
    我的采集PCM播放的时候要用:s16le
    回复 有任何疑惑可以回复我~ 2021-11-04 16:47:39
  • 李超 #3
    是的,视频里有讲呀
    回复 有任何疑惑可以回复我~ 2021-11-04 19:56:33
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信