多媒体开发之---一个简单的音视频同步算法

时间戳的简单同步算法,便于进一步理解音视频同步概念:

博文来源:stone_kingnet的专栏

在发送方:
对于相同时刻的音频/视频帧,打上相同的时间戳(系统时间)
接收方:
保存两个队列,audio/video分别用来存放还未播放的音频和视频
1。当每接收到音频帧的时候,遍历此时的video队列,将此音频帧的时间戳跟每个视频帧的时间戳进行比较:
1)如果音频帧的时间在这个视频帧的前面,帧播放该音频
2)如果音频跟视频的时间戳相差在某个可以接受的误差内,则同时播放该音频/视频(并将视频帧从video队列中删除)
3)如果视频时间在前,则播放视频帧(并将视频帧从video队列中删除)
如果video队列中的最后一帧的时间都在这个audio帧之前,在此时会把整个video队列中的帧播放完,此时video队列将为空,那么将这个音频放入audio队列。
2.对接收到视频帧的时候,也做类似的处理

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/stone_kingnet/archive/2008/10/20/3111341.aspx

http://blog.sina.com.cn/s/blog_672c5a470100pznm.html

时间: 2024-10-01 03:18:08

多媒体开发之---一个简单的音视频同步算法的相关文章

FFmpeg命令行工具和批处理脚本进行简单的音视频文件编辑

FFmpeg_Tutorial FFmpeg工具和sdk库的使用demo 一.使用FFmpeg命令行工具和批处理脚本进行简单的音视频文件编辑 1.基本介绍 对于每一个从事音视频技术开发的工程师,想必没有一个人对FFmpeg这个名称感到陌生.FFmpeg是一套非常知名的音视频处理的开源工具,它包含了开发完成的工具软件.封装好的函数库以及源代码供我们按需使用.FFmpeg提供了非常强大的功能,可以完成音视频的编码.解码.转码.视频采集.后处理(抓图.水印.封装/解封装.格式转换等),还有流媒体服务等

真的可以开发出一个像抖音一样的短视频APP吗?

"开发一个像抖音一样的短视频APP",你觉得可能实现吗?实现起来难吗? 短视频APP短短几年就火遍大江南北,成为男女老少休闲娱乐的一种方式,由此可见短视频APP的势头发展十分迅速,比如:抖音.快手.秒拍这些大家熟悉的短视频软件,你手机里至少会有一个. 开发一个像抖音一样的APP难度大吗?开发一个像都一样的短视频APP,是可是实现的,但是这个过程中有很多技术难点,以及需要结局的困难,看似简单的一个短视频APP,其实在开发过程中有很大的难度,主要体现在短视频APP功能点多,功能机制复杂:还

IOS开发之小实例--创建一个简单的用于视频录制和回放的应用程序

前言:还是看了一下国外的入门IOS文章:<Create a Simple App for Video Recording and Playback>,主要涉及视频录制和回放的功能的基本实现. iOS的API用于记录和播放视频的对刚入门IOS的新人有点混乱,因为有几个可用的选项.如果你只是想打一个视频,你可以用MediaPlayer的框架,它可以让我们发挥我们的设备本地存储的视频,或从远程位置.但是,如果你需要高级功能,如媒体资产管理,媒体编辑,跟踪管理,和其他人,你必须使用AVFoundati

利用FFMPEG简单分离音视频数据流

上一篇文章我们搭好了环境并编译出所需的ffmpeg库,本篇我们讨论如何利用ffmpeg提供的API函数进行多媒体文件的解封装(demux)过程.在讲解之前,我们需要了解一些基本的多媒体文件知识,大虾请飘过. 容器格式:不管是音频文件还是视频格式的文件,都是一个多媒体的容器,即container,比如常见的视频容器格式有avi.mp4.mkv.flv.rm/rmvb.mov.ts.vob.dat,音频容器格式有MP3.WAV.AAC.APE,FLAC等等,它容纳了视频.音频.字幕(subtitle

Android 多媒体开发学习之简单的音乐播放器

我们今天的目的是学习如何创建一个简单的音乐播放器,可支持播放,暂停,继续播放,以及进度显示,已经进度拖拽. 既然我们的目的已经很明确,那我们先分析一下: 1: 我们播放音乐的任务可以放在Activity中吗? 假设我们当前音乐播放,我们切到别的应用,这时候播放音乐的Activity所在的进程就属于后台进程,因为后台进程会由于系统资源不足时,会杀死当前进程,会导致音乐不播放了.所以采用Activity是不行的. 2:播放音乐的任务放在一个服务中,那服务有2中启动方式,应该使用那种服务? a:如果采

【安卓开发】一个简单快递查询APP实例的实现摘要

前言 做毕业设计涉及到安卓开发,决定好好学习安卓开发.在正式做毕业设计之前,有必要先设计和完成一个与毕业设计最终成果相关的demo或者说样例APP.最终毕业设计需要实现的功能包括通过调用PHP端API实现JSON获取和解析,等功能.而快递查询APP恰好具有我最终实现功能大部分的前置效果,故选取制作一个快递查询APP来练手 关键词 安卓开发.JSON .API .HTTP.毕业设计 历程记录 平台和工具(开发.调试.运行) 本案例使用的开发工具为AndroidStudio3.4,在开发向导内选择从

Java开发的一个简单截屏工具

//源代码 import java.awt.*;import java.awt.datatransfer.DataFlavor;import java.awt.datatransfer.Transferable;import java.awt.datatransfer.UnsupportedFlavorException;import java.awt.event.*;import javax.swing.*;import java.io.*;import javax.imageio.*;imp

web开发——写一个简单的表格导出操作

一.前台页面: 主要是一个按钮和一个表格,表格有显示数据,按钮负责将表格中的数据选择性地导出.除此外,可以附加一个小窗口和进度条,用于显示下载进度. 1. 按钮:<a href="javascript:;" class="easyui-linkbutton" iconCls="icon-redo" data-options="plain:true" id="btn-exp" onclick="

多媒体开发之---一个破解版的迅雷云点播网站

国庆放假后,周六加一天班 ,周日本来是搞学习的,后面看到,最近比较火的,我有比较喜欢的喜剧 导演宁浩 ,就骨粉搜搜,居然搜到了资源,没得,资源是比较多,有什么吉吉播放器的,要安装,看着就烦,于是乎 ,发现了一个bit天堂的磁力bit,确信这个是真的,下载又要时间,于是乎想到了百度网盘离线下载播放,后面离线下载是下下拉了,可是由于 天朝最近管的比较严关了 快播,百度的离线播放播放不了了,只能下载,碰巧骨粉搜索 列表 遇见了 云播放,一开始  上传bit磁力 播放 ,有点 久以为是假的,可是 后面