首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏音视频技术学习笔记

    音视频技术(6)-iOS音视频同步

    音视频同步播放流程 网上绝大多数代码都是参照ffplay来实现的,下面按照接入流程一步步讲解如何实现iOS平台上音视频同步 iOS接入ffmpeg和SDL可以参考前面的文章,本文不做赘述。 打开流并解析音视频帧 注意几点 1.新版本ffmpeg里,新增api,avcodec_parameters_to_context(...)用来获取解码参数 2.新的解码方法,和渲染的api 视频解码需要将pts自然数转成秒值,以和音频同步,音视频同步有多种方法,基于人对声音比较敏感,一般采用视频同步到音频。 可以参考前面音频 和 视频渲染讲解,没有复杂之处 本篇文章花的时间较长,反复研读代码才基本明白是怎么回事,想要再进一步理解,还得去读ffmpeg的源码实现,当前阶段先不做深入了解,比这更重要的是把整个音视频处理大的流程和基本原理磕清楚 音视频处理确实涉及的技术比较深,与笔者当前的工作并不match,只能在不多的休息时间里再挤一点时间,日拱一卒去学习钻研,加油。

    2.6K30发布于 2020-03-27
  • 来自专栏Qt项目实战

    Qt音视频开发6-ffmpeg解码处理

    一、前言 采用ffmpeg解码,是所有视频监控开发人员必备的技能,绕不过去的一个玩意,甚至可以说是所有音视频开发人员的必备技能。 ) 获取音频流并初始化音频解码器(av_find_best_stream、avcodec_find_decoder、avcodec_open2) 预分配帧内存(av_frame_alloc) 循环读取音视频

    1.9K00发布于 2020-08-08
  • 来自专栏实时音视频TRTC从小白到熟练

    实时音视频开发学习6 - 云端录制与回放

    也可以将房间的多路音视频先进性云端混流,再将混合后的音视频录制成一个文件,混流的概念会在高级功能中做具体的阐述。 后者则可以指定只录制一部分用户的音视频流,这需要您通过客户端的 SDK API 或者服务端的 REST API 进行控制,需要额外的开发工作量。 存储位置 如果你选择的时HLS文件格式,且没有设置续播,那么音视频直播停止之后便会自动保存在腾讯云的云点播的媒体资源中,视频管理选项。 代码见demo6—platerExample—test4.js。 代码见demo6。 注:更多内容请关注腾讯云的实时音视频

    7.6K30发布于 2020-08-24
  • 来自专栏关键帧Keyframe

    Android AVDemo(6):音频渲染,免费获得源码丨音视频工程示例

    塞尚《自助餐》 iOS/Android 客户端开发同学如果想要开始学习音视频开发,最丝滑的方式是对音视频基础概念知识有一定了解后,再借助 iOS/Android 平台的音视频能力上手去实践音视频的采集 → 编码 → 封装 → 解封装 → 解码 → 渲染过程,并借助音视频工具来分析和理解对应的音视频数据。 在音视频工程示例这个栏目,我们将通过拆解采集 → 编码 → 封装 → 解封装 → 解码 → 渲染流程并实现 Demo 来向大家介绍如何在 iOS/Android 平台上手音视频开发。

    76720编辑于 2022-06-13
  • 来自专栏关键帧Keyframe

    iOS AVDemo(6):音频渲染,免费获得源码丨音视频工程示例

    毕加索《桌子》像素版 iOS/Android 客户端开发同学如果想要开始学习音视频开发,最丝滑的方式是对音视频基础概念知识有一定了解后,再借助 iOS/Android 平台的音视频能力上手去实践音视频的采集 → 编码 → 封装 → 解封装 → 解码 → 渲染过程,并借助音视频工具来分析和理解对应的音视频数据。 在音视频工程示例这个栏目,我们将通过拆解采集 → 编码 → 封装 → 解封装 → 解码 → 渲染流程并实现 Demo 来向大家介绍如何在 iOS/Android 平台上手音视频开发。 errorWithDomain:NSStringFromClass(self.class) code:status userInfo:nil]; return; } // 6

    1.1K20编辑于 2022-06-13
  • 来自专栏福大大架构师每日一题

    音视频八股文(6)-- ffmpeg大体介绍和内存模型

    播放器框架图片常用音视频术语• 容器/文件(Conainer/File):即特定格式的多媒体文件,比如mp4、flv、mkv等。 常用概念-复用器图片常用概念-编解码器图片FFmpeg的整体结构图片FFMPEG有8个常用库• AVUtil:核心工具库,下面的许多其他模块都会依赖该库做一些基本的音视频处理操作。 • AVFilter:音视频滤镜库,该模块提供了包括音频特效和视频特效的处理,在使用FFmpeg的API进行编解码的过程中,直接使用该模块为音视频数据做特效处理是非常方便同时也非常高效的一种方式。 ◼ avformat_open_input();打开输入视频文件◼ avformat_find_stream_info():获取音视频文件信息◼ av_read_frame(); 读取音视频包◼ avformat_seek_file

    91400编辑于 2023-04-26
  • 来自专栏福大大架构师每日一题

    音视频八股文(6)-- ffmpeg大体介绍和内存模型

    播放器框架 在这里插入图片描述 常用音视频术语 • 容器/文件(Conainer/File):即特定格式的多媒体文件, 比如mp4、flv、mkv等。 在这里插入图片描述 常用概念-编解码器 在这里插入图片描述 FFmpeg的整体结构 在这里插入图片描述 FFMPEG有8个常用库 • AVUtil:核心工具库,下面的许多其他模块都会依赖该库做一些基本的音视频处理操作 • AVFilter:音视频滤镜库,该模块提供了包括音频特效和视频特效的处理,在使用FFmpeg的API进行编解码的过程中,直接使用该模块为音视频数据做特效处理是非常方便同时也非常高效的一种方式。 ◼ avformat_open_input();打开输入视频文件 ◼ avformat_find_stream_info():获取音视频文件信息 ◼ av_read_frame(); 读取音视频包 ◼

    85820编辑于 2023-06-09
  • 来自专栏猫哥的专栏

    【Android 音视频开发打怪升级:音视频硬解码篇】三、音视频播放:音视频同步

    一、音视频数据流分离提取器 上篇文章,多次提到音视频数据分离提取器,在实现音视频解码器子类之前,先把这个实现了。 封装Android原生提取器 之前提过,Android原生自带有一个MediaExtractor,用于音视频数据分离和提取,接来下就基于这个,做一个支持音视频提取的工具类MMExtractor: class 四、调用并播放 以上,基本实现了音视频的播放流程,如无意外,在页面上调用以上音视频解码器,就可以实现播放了。 简单看下页面和相关调用。 main_activity.xml <? 系统时间 而系统时间作为统一信号源则非常适合,音视频彼此独立互不干扰,同时又可以保证基本一致。 实现音视频同步 要实现音视频之间的同步,这里需要考虑的有两个点: 1. mState = DecodeState.PAUSE } } //【解码步骤:6.

    2.9K20发布于 2020-04-01
  • 来自专栏DevTips

    音视频专题」 音视频基础概念介绍

    01 前言 大家好,从本文开始我们将从 Android 音视频专题开始探索,并按照 iOS/Android 音视频开发专题介绍 依次开始。 iOS 音视频专题将在 Android 音视频专题结束后进行。 在进入实战之前,我们有必要了解下音视频相关术语。 02 音频视频编码 什么是音视频编码 ? 所谓音视频编码就是指通过特定的压缩技术,将某个音视频格式的文件转换成另一种音视频格式文件的格式。 音视频编码的意义 ? 音视频编码的最终目的是对音视频进行压缩,未经编码(压缩)的音视频数据量大,存储困难,不利于网络传输。如果视频不经过编码压缩,在直播场景下做不到实时传输的需求。 视频编码格式有哪些 ? 最终 Android 专题结束后产出的 API 截图如下 : 往期内容: iOS/Android 音视频开发专题介绍

    1.7K10编辑于 2022-01-20
  • 来自专栏iOS 音视频接入-TRTC

    iOS 音视频接入-音视频基础

    ,下面就是我个人的音视频基础学习记录。 流:编码之后的数据) 音视频过程 音视频客户端实现过程 采集:数据的来源。 处理:数据进行加工处理。 渲染:展示数据。 传输:数据共享。 大体流程图如下: [音视频的客户端实现过程] 音视频采集 产生音视频数据的源头叫做输入设备,在输入设备中获取音视频原始数据的过程,称为采集。 存放音视频内容的叫做封装容器,文件类型叫封装格式。 文件封装与解封装是互逆的操作过程。 音视频传输网络协议 音视频数据在网络中的传输一般都使用特定的协议,称为流媒体协议。 将音视频文件通过协议打包后,会走网络接口发送出去。 对端接收网络包之后,需要解开协议包,才可以拿到音视频文件。

    2.6K53发布于 2020-09-27
  • 来自专栏音视频技术

    AV夜话#6 刘连响:聊聊音视频与出海、AI和传统行业

    今晚,AV夜话#6邀请到了老朋友刘连响,他是腾讯专家工程师,目前主要在腾讯负责WebRTC相关技术的落地以及优化。今晚我们会聊聊音视频与出海、AI和传统行业,晚上见。

    46110编辑于 2023-04-18
  • 来自专栏音视频技术

    音视频+

    ” 8月5日-6日,LiveVideoStackCon 2022 音视频技术大会 上海站,和你一同开启通向未来的大门。 音视频+ 从音视频编解码到网络传输的进一步降低时延;从智能硬件的开发到内容生产端与消费端的升级;从客户端建设到服务质量与体验的提升……音视频领域内的方方面面都在不断向前推进,助力着一个又一个行业从初生到走向成熟 「音视频+」给人们带来了多彩的生活,也给行业带来了无限可能。在本专题中,我们将探讨音视频技术与不同行业的高密度融合,会给行业带来怎样的技术新实践、新贡献呢? 讲师与议题 HDR作为超高清音视频产业的关键技术之一,拥有更广的色彩容积和更高的动态范围。 消费侧,通过智能理解和推荐,短视频重构了人们内容获取的方式,但生产侧,音视频生产依然停留在传统时代。

    70730编辑于 2022-07-26
  • 来自专栏iOS 音视频接入-TRTC

    iOS音视频接入 - TRTC多人音视频通话

    前一篇我们使用腾讯封装的TRTCCalling接入了1v1的音视频通话,今天还是使用此模块进行实现多人音视频通话及其常用TRTCSDK的API。

    5.1K1811发布于 2020-10-13
  • 来自专栏云服务器购买

    实时音视频-腾讯云实时音视频(TRTC)

    实时音视频支持跨终端、全平台之间互通,从零开始快速搭建实时音视频通信平台 腾讯云实时音视频详情点击查看 腾讯实时音视频(Tencent Real-Time Communication,TRTC)拥有QQ 十几年来在音视频技术上的积累,致力于帮助企业快速搭建低成本、高品质音视频通讯能力的完整解决方案。 全平台互通 可在微信、手机 QQ、QQ 浏览器通过 H5 页面或微信小程序发起/接受/断开音视频通话,也可直接在网页或通过 SDK 集成的方式在 PC、MAC、APP 中实现音视频通话,支持全平台互通 美颜滤镜 实时音视频产品免费提供基础美颜与滤镜功能;并支持与美颜特效(收费)产品配合使用,提供美颜美型、贴纸、手势识别等多种实时特效功能。 网络通信稳定 全球端到端延时小于300ms,抗丢包率超过40%,抗网络抖动超过1000ms,即使在弱网环境下仍然能够保证高质量的音视频通信,确保视频通话过程顺畅稳定。

    12.3K1411发布于 2019-08-06
  • 来自专栏实时音视频TRTC从小白到熟练

    实时音视频开发学习1 - 音视频初体验

    TRTC基本内容 随着移动互联网速度越来越快的发展,实时音视频的发展也越来越收到重视。 腾讯实时音视频(Tencent Real-Time Communication,TRTC)经过了10多年在网络音视频技术的发展与积累,并以多人音视频通话和低延时互动直播两大场景化方案,通过腾讯云服务向开发者开放 产品架构 实时音视频TRTC主打平台互通的多人音视频和低延时直播互动解决方案,提供了小程序端、web端以及终端的SDK用于快速集成,并与云服务后台连通。 在音视频开发过程中,通过判断UserID的不同可以给房间添加成员。 RoomID 房间ID是一个音视频的空间,同一房间的用户可以互相接收对方的实时视频数据。 推送 推送只用户将本地音视频数据上传给TRTC服务端的操作,相当于主播,对应推流过程。 订阅 订阅只用户向TRTC服务端请求拉去指定用户音视频数据的操作,相当于粉丝观看,对应拉流过程。

    4.7K63发布于 2020-08-20
  • 来自专栏跟铭哥学音视频技术

    音视频技术基础(一)--音视频技术概念基础

    音视频技术介绍 什么是音视频技术?音视频技术其实就是音频技术和视频技术的一个统称,在技术处理上,其实音频和视频是要分开处理的。 接收到原始数据文件之后,就可以通过硬件或者软件进行渲染与展示了,硬件例如显示器、音响等,软件有SurfaceView; 6. 文件封装/解封装。 网络协议会将音视频数据文件打包成协议包,通过网络协议端口发送出去,接收方接收到网络包之后,要通过网络协议解开协议包,才能获得音视频数据文件。 一般音视频同步的做法有三种:视频同步到音频、音频同步到视频、音视频同步的外部时钟。通常采用视频同步到音频的方法。 音视频同步的算法如下图所示: image.png 流媒体协议 通常音视频数据体积比较大,所以在网络传输过程中都是连续不断的多媒体流量,在网络中传输音视频数据的技术叫流媒体技术,传输使用的协议就是流媒体协议

    5.8K156发布于 2020-06-16
  • 来自专栏音视频领域业余爱好者

    音视频初探

    视频直播类功能的技术上整体流程包括以下内容: 音视频采集 音视频处理 音视频编码和封装 () 推流 流媒体服务器处理 拉流 音视频解码 音视频播放 1.3. 接下来,主播共享端采集数据(音视频的采集、处理以及编码封装流程)形成RTMP流推送到CDN网络(推流)。 目前主流的音视频编码格式主要是MPEG4、H.254 详细可参考主流的编码格式 2.5. 它提供了录制、转换以及流化音视频的完整解决方案。 /ffprobe -show_format xitiejie.mp4 [6ee4b5b12387d60fde0706fdc63f3cd6.png] 查看该文件的包的详细信息 .

    2.2K00发布于 2021-07-01
  • 来自专栏云架构

    音视频基础

    (3) ogg:软件牧费,应用比较少; (4) Speez:显著的特点是支持回音消除,是七八年前应用非常广泛的编码器; (5)G.711:固话使用的窄带音频编码器,但是音损非常严重,不适合实时通信;(6) AAC SSR (Scalable Sample Rate) 4: AAC LTP (Long Term Prediction) 5: SBR (Spectral Band Replication) 6: B帧占I帧1/4的大小,但是耗时,占用CPU,会导致延时增加,实时通讯(音视频会议,在线教育)一般只有I、P帧,音视频转码服务会大量使用B帧。 所以实时通讯,音视频会议一般只有i p帧,转码服务的会大量使用b帧,节约空间。 编码帧分类:I帧一般是GOP中第一帧,不参考别的帧。P帧占I帧一半大小。 B帧占I帧1/4的大小,但是耗时,占用CPU,会导致延时增加,实时通讯(音视频会议,在线教育)一般只有I、P帧,音视频转码服务会大量使用B帧。

    3.1K31发布于 2021-07-05
  • 来自专栏福大大架构师每日一题

    音视频八股文(1)--音视频基础

    # 1.1.音视频录制原理 # 1.2.音视频播放原理 # 1.3.图像表示RGB-YUV ## 1.3.1 图像基础概念 ◼ 像素:像素是一个图片的基本单位,pix是英语单词picture的简写 电影帧率一般是 24fps(帧每秒); 电视剧一般是25fps; 监控行业常用 25fps; 音视频通话常用15fps; 帧率越高,画面越流畅,需要的设备性能也越高。 播放 5帧、24帧视频对比。 的值一定大于图像的宽度值,就像下图所示: ◼ 比如分辨率638x480的RGB24图像,我们在内存处理的时候如果要以16字节对齐,则638*3/16=119.625不能整除,因此不能16字节对齐,我们需要在每行尾部填充6 对于视频也是一个道理,同样的音视频流可以用不同容器来承载。 ### 1.7.1 音视频同步概念 DTS(Decoding Time Stamp):即解码时间戳,这个时间戳的意义在于告诉播放器该在什么时候解码这一帧的数据。

    1.6K20编辑于 2023-06-08
  • 来自专栏Qt项目实战

    Qt音视频开发24-ffmpeg音视频同步

    ,要么根本没法同步歪七八糟的,要么进度跳过去直接蹦蹦蹦崩溃的,其实最完美的音视频同步处理demo就是ffplay,我亲测过几十种各种各样的音视频本地文件,数十种视频流文件,都是非常完美,当然啦这是亲生的啦 如果仅仅是播放视频流(不带音频流),可能不需要音视频同步,所以最开始只做rtsp视频流播放的时候根本没有考虑同步的问题,因为没遇到也不需要,等到后期发现各种rtmp、http、m3u8这种视频流的时候, 常用的音视频同步方法: 通过fps来控制,fps表示一秒钟播放多少帧,比如25帧,可以自行计算一帧解码用掉的时间,一帧占用(1000/25=40毫秒),通过延时来处理,这其实是最渣渣的办法。 音视频同步到外部时钟,外部时钟作为主时钟,最终采用的办法,容易理解互不干扰,各自按照外部时钟去同步自己。 ffplay自身内置了三种同步策略,可以通过参数来控制采用何种策略,默认是视频同步到音频。 音视频完美同步,采用外部时钟同步策略。 支持seek定位播放位置。 支持qsv、dxva2、d3d11va等硬解码。 支持opengl绘制视频数据,极低CPU占用。

    2.3K62发布于 2020-09-24
领券