范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

FFplay音频滤镜分析

  音频流的 滤镜是通过  configure_audio_filters()   函数来创建的,因为  ffplay   为了代码的通用性,即便命令行参数不使用滤镜, AVFrame   也会过一遍 空滤镜做下样子。
  configure_audio_filters()   函数的流程图如下:
  configure_audio_filters()   函数的定义如下: static int configure_audio_filters(VideoState *is, const char *afilters, int force_output_format){....}
  下面讲解一下这个函数的参数。
  VideoState *is   ,是 ffplay 播放器的全局管理器。
  char *afilters  ,是滤镜字符串,例如 下面的命令: ffplay -af "atempo=2.0" -i juren-5s.mp4
  "atempo=2.0"   这个字符串就会赋值给  afilters   。
  int force_output_format   ,代表是否强制把  buffersink   出口滤镜的音频帧采样等信息 设置为 跟  is->audio_tgt   一样。
  之前说过  is->audio_tgt   是音响硬件设备打开的信息。 is->audio_tgt   是 最终 要传递给 SDL 的音频格式。所有的采样率,声道数等等最后都要转成  is->audio_tgt   。
  下面来分析一下 configure_audio_filters()   函数里面的重点代码,如下:
  这个函数一开始就定义了 一些只有 2 个元素的数组,这其实是 ffmpeg 项目传递参数的方式,传递一个数组进去函数,主要有两种方式。
  1,  传递数组的大小。就是有多少个元素。
  2,  传递数组的结尾,只要读到结尾元素 (-1),就算结束了。
  ffmpeg 大部分函数采用的是第二种方式。
  然后他会调  avfilter_graph_free()   释放 滤镜容器 (FilterGraph),有些同学可能会疑惑, is->agraph   一开始不是  NULL   吗? 为什么需要释放?
  is->agraph   一开始确实是 NULL,但是  configure_audio_filters()   这个函数可能会调用 第二次 ,第二次的时候  is->agraph   就不是 NULL了。
  configure_audio_filters()    第一次调用 是在  stream_component_open()   里面,如下:
  第二次调用 是在  audio_thread()   里面,如下:
  【腾讯文档】FFmpegWebRTCRTMPRTSPHLSRTP播放器-音视频流媒体高级开发-资料领取FFmpegWebRTCRTMPRTSPHLSRTP鎾斁鍣�-闊宠棰戞祦濯掍綋楂樼骇寮€鍙�-璧勬枡棰嗗彇
  第二次调用  configure_audio_filters()   是因为实际解码出来的 AVFrame 的采样率,声道等,跟容器里面记录的不一致,之前  is->audio_filter_src   是直接从容器,封装层取的数据。封装层记录的音频采样率等, 可能是错的 ,需要以实际解码出来的  AVFrame   为准。
  而且,注意,第二次的时候, force_output_format   参数会置为 1,这样会强制  buffersink   出口滤镜的采样信息等 设置为  is->audio_tgt   一样。
  其实 configure_audio_filters()    必然会调第二次的 ,因为  is->auddec.pkt_serial != last_serial   这个条件肯定是真。
  接着就是设置 滤镜使用的线程数量,0 为自动选择线程数量,如下: is->agraph->nb_threads = filter_nbthreads;
  第三个重点是,设置重采样选项(aresample_swr_opts),如下:
  什么样的命令行参数才是重采样选项的,在  libswresample/options.c   里面可以找到,如下:
  举个例子,如下: ffpaly -ich 1 -i juren-5s.mp4
  ich 1   就会被解析拷贝进去  ffplay.c   里面的  swr_opts   变量里面。
  这里还用到了一个新的函数  av_opt_set()  ,这个函数其实不只可以设置 滤镜的属性字段 ,还可以设置大多数 数据结构 的属性字段,例如解码器,封装器 等等,只要内部有  AVClass   的数据结构,都能用  av_opt_set()   来设置属性,详情请阅读《opt.h文件函数分析》
  接下来的重点是设置入口跟出口滤镜,如下:
  出口滤镜 还设置了  sample_fmts   为  AV_SAMPLE_FMT_S16  ,这是  ffpaly   播放器自己的特性,就是说无论MP4文件里面的音频格式是怎样的,他都会转成  AV_SAMPLE_FMT_S16   格式丢给 SDL 播放,而且它在用 SDL_OpenAudioDevice 打开音频设备的时候,就是用的 S16 格式, 这是写死的 。
  force_output_format   的逻辑主要是 强制  buffersink   出口滤镜的采样信息等 设置为跟  is->audio_tgt   一样。 audio_tgt   是 SDL 接受音频帧的最终格式。
  第一次调用  configure_audio_filters()   函数, force_output_format   为 0,不会跑进去这块逻辑。
  最后就是调  configure_filtergraph()   函数来 链接入口跟出口滤镜 ,同时创建滤镜容器(FilterGraph),如下:
  上图最重要的是,入口滤镜 跟 出口滤镜 被赋值到全局管理器  is   了。后面只要把解码器输出的 AVFrame 往入口滤镜丢,然后往出口滤镜读就行了。

一切都是最好的安排15条语录,顺其自然,随遇而安一切是最好的安排,是加措的代表作品,公开分享生命沉淀的轨迹与感悟。书中以人生情感信念生活爱快乐幸福智慧情绪为主题,教我们如何对待生命中的困惑与迷茫,增强面对世事无常的内在力量。1。18位女生参加2022年巴黎名媛舞会!福特曾孙女丰满,王室公主贵气一年一度的巴黎名媛舞会准时开始了,最新舞会也是邀请了全球的优秀女生,她们不是王室公主,就是豪门后代与名人,比如谷爱玲是奥运冠军被邀请,还有法国奥尔良公主海伦妮与挪威国王的外孙女,这戴比尔斯推出人造钻石品牌灯箱珠宝,起价很离谱戴比尔斯(DeBeers)老大说了一句人造钻石不值得分级,并推出极为廉价的人造钻石珠宝品牌灯箱珠宝,将两种产品间的矛盾推向一个新的高度。戴比尔斯表示,人造钻石起价为14克拉200美大麦植发,拯救你消失的头顶虽说人与人之间的悲欢并不相通,但你要是说起脱发,大家从心底弥漫出的秃如其来的悲伤倒是一致的。周周头顶的头发一直比较稀疏,但真正开始脱发还要从大学毕业开始说起。最开始,周周试过生发液胶囊衣橱又来啦,两周不重样寥寥几件衫,化作万般风情。胶囊衣橱的魔力无限,且省心省力。今日穿搭尤为适合苹果型身材,也就是腹部肥胖的身材。选择遮盖腹部的宽松单品,合身的剪裁,或者是有弹性的材质,宽裕恰到好处。有2023年的新品开发趋势在这11月财经新势力做品牌,从好产品开始。随着靠营销就能走红的营销时代的结束,中国化妆品市场已然迈进了重科研的新阶段,而作为高品质产品的第一道关卡,美业供应链往往一定程度决定了品牌的未郭晶晶堪称是最反油腻的富太,她的裙子永远过膝,也从不穿紧身衣现在很多所谓的名媛为了走红,穿着打扮都是非常打扮。甚至一些顶级的豪门富太或者千金也是如此,为了吸引眼球,可以说是不择手段。比如说李家诚的妻子徐子淇穿衣就是非常大胆,作为四个孩子的母腿粗和屁股大的女生,冬天少穿这几种裤子,显胖又土气当代人有很多焦虑,容貌焦虑身材焦虑结婚焦虑生孩儿焦虑,这一个个看似都不那么致命的焦虑加在一起实在让很多人都喘不过气。今天我们就来谈一谈这众多焦虑中的一种,身材焦虑。又是一个冬天到来圈粉无数的宝藏ins博主,造型多变又时髦,她的色彩搭配一绝圈粉无数的宝藏ins博主,造型多变又时髦,她的色彩搭配一绝!如果你看惯了中规中矩的穿搭,想要寻求一些新鲜感,又怕过于时尚自己驾驭不了,那么不妨来看一下ins上这个很有名气的韩国博主秋天发丝干燥,护发精油,你冲不冲没用十二草集护发精油的人头发毛躁干枯炸毛用十二草集护发精油的人头发飘逸柔顺,满满的港风美女氛围感一到冬天,头发炸毛,还疯狂打结发叉!怎么梳都梳不通!每到这时候我都会拿出我的秘密武器古之乡贤临川才子每当偶尔停下为生活匆忙的脚步,回首点滴往事,心头一阵恍惚,似乎过往种种就发生在昨日。万般滋味,刹那间涌上心头,自己似乎也沉浸在陈子昂的念天地之悠悠,独怆然而涕下的苍茫心境当中。自己
院士专家云聚昆明共探数字经济发展图为论坛现场。胡远航摄中新网昆明11月12日电(记者胡远航)全球数字经济的网络安全面临严峻威胁,应构建安全可信的网络新生态,促进数字经济高质量发展。中国工程院院士沈昌祥如是建议。1成都建成全国首个数字艺术全产业链服务,带动多个产业高质量发展李金远作品由国家文旅部业务主管的中国群众文化学会品牌与知识产权委员会指导,成都经开区工业与文创研究中心研发的全国首个数字艺术全产业链服务体系投入使用。成都著名画家李金远成为这套数字军事专家中国无人机行业标准正走向全球环球时报赴珠海特派记者马俊近年来,中国不但研制和装备了多款军用无人机,而且还出口到全球多个国家和地区。但罕有人知的是,这些出口海外的中国无人机,不但带去了中国军工的最新产品,而且还为阻挡统一,美胁迫欧盟制裁大陆,称台海若冲突,全球损失数万亿自从今年8月佩洛西窜台事件发生后,中美关系便跌入了谷底,但美国不仅没有意识到错误,反而在接下来的一个月,密集派官员窜访台岛,而在近日,他们又在涉台问题上有了新动作。据外媒金融时报报南岳衡山中心景区恢复对外开放潇湘晨报记者从南岳区旅游部门了解到,自2022年11月14日8时起,南岳衡山中心景区水濂洞万寿大鼎等景区景点和全区宗教场所恢复对外开放,开放时间为8001730,夜间(1730次日卢旺达首都基加利获国际湿地城市认证这是11月11日在卢旺达首都基加利拍摄的卡布加湿地。第二批国际湿地城市颁证仪式11月10日在湿地公约第十四届缔约方大会日内瓦分会场举办。湿地公约秘书处为这批来自13个国家的25个新国家邮政局你的双11快件20日前基本都能收到今年是邮政快递业自2010年以来第13次迎战快递业务旺季。国家邮政局监测数据显示,11月1日至11日,全国邮政快递企业共处理快递包裹42。72亿件,日均处理量是日常业务量的1。3倍鲁医生用自己的前程给全国家长上了一课,凡事都要按规矩办事谈谈这两天互联网上闹得沸沸扬扬的成年人掌掴幼儿事件,这件事的起因是鲁医生儿子在幼儿园跟同学争抢玩具时起了冲突,结果被对方打伤了后脑勺,鲁医生就带着儿子登门到对方家里讨要说法。结果在为何越来越多人喜欢去酒店开房,住宾馆不好?从业人员说出原因随着交通变得便利起来,人们外出游玩已经变得稀松平常了,这也意味着人们在外住宿的需求量变大了不少。在市面上可以给人们提供住宿服务的经营场所有很多,比如酒店宾馆以及各种民宿等等,不过在叶卡捷琳堡以俄国首位女皇命名,苏联的最大军备制造中心1723年,一封来自西伯利亚的密信呈到沙皇彼得大帝面前,信中写道我们在伊塞特河附近建了一座新城市,有各种制造厂和加工厂,为了纪念永恒的荣耀陛下和最仁慈的皇后,请求将这座城市命名为叶电商价格狂欢的背后是劣币驱良币,工厂破产工人失业的恶性循环如果网购电商取代了大多实体经济,人民的生活会怎样?会不怎么样。便捷是便捷了,但是没人上街逛超市了,所有人都宅在家里,什么都网购,肥胖,三高都增加了,人类都退化了。另外,网购直播都在