音视频

HTML躬行记(4)——Web音视频基础

公司目前的业务会接触比较多的音视频,所以有必要了解一些基本概念。 文章涉及的一些源码已上传至 Github,可随意下载。 一、基础概念 本节音视频的基础概念摘自书籍《FFmpeg入门详解 音视频原理及应用》。 1)音频 声音的三要素为频率、振幅和波形,即声音的音调、声波的响度和声音的音色。 音频是一 ... »

沉浸其境,共赴云栖数智硬核美学

14年的云栖,见证了中国科技的真实演进。 2022年11月3日,新的云栖大会即将正式开启。 上千位科学家、院士、学者、行业领军人物汇聚于杭州云栖小镇,将带来1000+数字产业和数字科技话题分享,更有1000+项科技新品,涉及云计算、芯片、下一代网络、云边端一体化、人工智能、产业数字化等内容,将在「全 ... »

VideoCloudTech

Android FFmpeg音视频解码播放示例详解

目录 前言 一丶FFmpeg简介 1.简介 2.FFmpeg两个强大功能 2.1 命令功能 常用参数说明: 二丶FFmpeg音视频解码播放 前言 1.FFmpeg 音视频解码流程 2.FFmpeg 音视频解码原理 2.1.解协议 2.2.解封装 2.3.解码 2.4.音视频同步 2. »

FFmpeg 音频可视化解码流程详解

目录 一、解码流程 1.1、解析音频信息 1.2、从原始数据packet到frame 1.3、从frame到PCM byte 二、分贝计算 三、实现效果 一、解码流程         解码流程大致分为以下三个部分,以FFmpge源码下的ffmpeg\doc\examples\dec »

C++实现RTMP协议发送H.264编码及AAC编码的音视频

  RTMP(Real Time Messaging Protocol)是专门用来传输音视频数据的流媒体协议,最初由Macromedia 公司创建,后来归Adobe公司所有,是一种私有协议,主要用来联系Flash Player和RtmpServer,如FMS, Red5, crtmpserver等。RTMP协议可用于实现直播、点播应用,通过FMLE(Flash Media Live Encoder »

MPEG2-TS音视频同步原理(PCR dts pts)

一、引言MPEG2系统用于视音频同步以及系统时钟恢复的时间标签分别在ES,PES和TS这3个层次中。  在TS 层, TS头信息包含了节目时钟参考PCR(Program Clock Reference),               用于恢复出与编码端一致的系统时序时钟STC(System Time Clock)。       在PES层, 在PES头信息里包含有表示时间戳PTS(Presenta »

Qt音视频开发13-mpv录像存储

一、前言 用mpv来做录像存储,保存视频文件,从来都没有如此的方便,直接设置属性stream-record对应的文件路径即可,我的乖乖,一行代码,如此精简美丽大方,搞得我都不敢相信自己的眼睛,mpv除了支持主流的win、linux、mac三大操作系统外,还支持手机安卓IOS等,尤其是居然支持各种嵌入式linux,记得vlc想要在嵌入式linux上交叉编译成功的话,难于上青天,各种插件的依赖实在是太 »

基于ffmpeg的简单音视频编解码的例子

近日需要做一个视频转码服务器,对我这样一个在该领域的新手来说却是够我折腾一番,在别人的建议下开始研究开源ffmpeg项目,下面是在代码中看到的一 段例子代码,对我的学习非常有帮助。该例子代码包含音频的解码/编码和视频的编码/解码,其中主要用到编解码的libavcodec组件。以下是完整的例 子,代码自身的注释足够清晰了。/**  * @file  * libavcodec API use exam »

[转]WebRTC 音视频开发总结(十六)

本节主要分享视频通话中android和ios上操作音频设备的方式,如调解音量大小,启用扬声器(本系列文章转载请说明出处,博客园RTC.Blacker).   先看看webrtc中处理音频设备代码的目录结构:   第一种方式就是直接调用Android或ObjectC的API,代码如下(WebRtcAudioTrack.java): 通过调用Android提供的AudioManager类来操作音频 »

Android(java)学习笔记87:Android音视频MediaRecorder用法

1. Android语音录制可以通过 MediaRecorder 和 AudioRecorder:  MediaRecorder本来是多媒体录制控件,可以同时录制视频和语音,当不指定视频源时就只录制语音(默认录制语言);AudioRecorder只能录制语音。二者录制的区别在于,MediaRecorder固定了语音的编码格式,具体平台支持类型可以在http://developer.android. »

音视频学习系列第(七)篇---MediaCodec的使用

音视频系列 什么是MediaCodec MediaCodec是安卓官方提供的一套用于音视频编码和解码的API,该API是在安卓4.1(API 16)引入的,因此只能用于4.1以上的手机 MediaCodec工作原理 先上一幅图 MediaCodec工作原理.png 从图中可以看出MediaCodec的架构采用了2个缓冲区队列,即input缓冲区队列和output缓冲区队列缓冲区队 »

音视频直播优化

  音视频的直播系统是一个复杂的工程系统,要做到非常低延迟的直播,需要复杂的系统工程优化和对各组件非常熟悉的掌握。下面整理几个简单常用的调优技巧: 1. 确保 Codec 开启了最低延迟的设置。Codec 一般都会有低延迟优化的开关,对于 H.264 来说其效果尤其明显。很多人可能不知道 H.264 的解码器正常情况下会在显示之前缓存一定的视频帧,对于 QCIF 分辨率大小的视频(176 × 1 »

Android 音视频深入 九 FFmpeg解码视频生成yuv文件(附源码下载)

项目地址,求star https://github.com/979451341/Audio-and-video-learning-materials/tree/master/FFmpeg(MP4%E8%BD%ACyuv%EF%BC%89 这一次是将MP4解码出yuv文件出来,先介绍一波yuv文件 YUV是指亮度参量和色度参量分开表示的像素格式,而这样分开的好处就是不但可以避免相互干扰,还可以降低色 »

[转]WebRTC 音视频开发总结(十九)- kurento

  折腾了一个多星期终于将kurento的环境搭建好(开发阶段的产品,有些BUG要自己解决),所以单独写篇文件来介绍。 下面开始介绍kurento,文章来自博客园RTC.Blacker,转载请说明出处。   一、kurento是什么? 搞视频会议就会涉及一对多、多对多、广播、转码、混音、合屏、录制,这就需要用到流媒体服务器,而kurento就具有这些功能。 他主要用来作为webrtc的流媒体服 »

JS验证上传的文件是否为音视频文件格式

  前情提要:   页面上有个这个小需求。 点击下方按钮,只能上传音视频。 于是,已自己的想法,写了一个笨办法。 没办法,自己对JS 还是七窍通六窍,一窍不通,好的业务逻辑,根本想不出来, 不过能解决问题,就好,就好。 业务需求:   音视频文件格式,一共这些格式需要判断:  【.avi,.wmv,.mpg,.mpeg,.mov,.rm,.ram,.swf,.flv,.mp4,.mp3,.wm »

OPENFIRE+SPARK语音视频出错连不上的解决办法,倾心吐露:

这是套基于XMPP解决方案的即时通讯系统,支持几万的并发数,支持语音视频等。上年测试的时候,发现局域网内可以直接使用语音视频;但是真的放到学校部署的时候发现,在多个校区并联、不同局域网之间都无法实现语音视频,提示NOT FOUND错误什么的。非常懊恼!后来也没去研究这个东西,自己写了个语音视频程序作为这套系统的补充。前几天突然想到:RED5之所以出错,是因为找不到连接语音视频地址的服务器。也就是U »

音视频处理之FFmpeg+SDL视频播放器20180409

一、FFmpeg视频解码器 1.视频解码知识 1).纯净的视频解码流程 压缩编码数据->像素数据。 例如解码H.264,就是“H.264码流->YUV”。 2).一般的视频解码流程 视频码流一般存储在一定的封装格式(例如MP4、AVI等)中。封装格式中通常还包含音频码流等内容。 对于封装格式中的视频,需要先从封装格式中提取中视频码流,然后再进行解码。 例如解码MKV格式的视频文件,就是 »

关于H5页面音视频在微信和app下自动播放

H5页面音视频自动播放 现在大部分的H5页面都有实现播放背景音乐,播放视频功能。那怎么实现自动播放呢? 纯H5页面在手机端中是无法实现自动播放,移动端浏览器大部分是禁用video和audio的autoplay功能并且,很多移动浏览器也不支持首次js调用play方法进行播放(只有用户手动点播放后暂停,然后用代码进行play可以)。这样做主要是为了防止不必要的自动播放浪费流量。 以下代码是实现用户第一 »

混音器:视频会议录制不可或缺的组件

在定制开发视频会议系统时,有客户需要将视频会议的过程录制下来,这就必须要用到混音器组件。一个视频会议有多个用户参与,每个用户都有自己的声音,我们需要将多路声音数据经过混音后,再输出给录制器进行录制。 ... »

音视频学习--H264解析渲染

一、H264文件获取   下载一段MP4文件,通过FFMPEG转换成MP4 ffmpeg -i Gravity.mp4 -vcodec h264 out_2.264   二、通过解析H264成帧,然后刷新   这里的环境是 MacOS  + Python2.7 + openCV2    #!/usr/local/bin/python2.7 # -*- coding: utf-8 -*- _ »