音视频同步 ffmpeg 推流

FFmpeg及音频简介 1.音调音频的快慢 男生->女生->儿童人类听觉范围20hz - 20khz, 人声范围85-1100hz。声音的震动频率即为HZ2.音量震动的幅度3.音色谐波:绿色为基频,橙色和蓝色的频率(一次谐波和二次谐波)叠加后,得到粉色的真实频率。粉色频率的小波动端成为称为谐波。 阅读详情

音视频同步原理及实现

可参考:
https://blog.csdn.net/myvest/article/details/97416415
https://www.jianshu.com/p/3578e794f6b5
总结的非常详细。

ffmpeg 推流 音视频同步推流

  1. 采用策略
    将视频同步到音频上:以音频的推送速度为基准来同步视频。
  2. 代码实现
    ffmpeg源码中给出的实现:
// Write the stream header, if any. 
ret = avformat_write_header(oc, &opt);
if (ret < 0) {
   
   
    fprintf(stderr, "Error occurred when opening output file: %s\n",
            av_err2str(ret));
    
音视频开发---ffmpeg rtmp 上述代码中采用的是av_usleep()直接延时等待的方式, , 等待时间为‘1/帧率’, 由于存在程序处理的时间,系统延时等, 这种方式控制时间是不准确的,但是上述代码却很直观的表现了延时的实现。是将输入视频数据送至媒体服务器, 输入视频数据可以是本地视频文件(avi,mp4,flv......),也可以是内存视频数据,或者摄像头等系统设备,也可以是网络URL。FFMpeg可以支持rtmp://, rtmpt://, rtmpe://, rtmpte://,以及 rtmps://协议。 阅读详情

相关推荐

iOS完整采集音视频数据编码同步合成

众所周知,原始的音视频数据无法直接在网络上传输,需要编码后的音视频数据以合成的视频,如flv, mov, asf等,根据接收方需要的格式进行合成并传输,这里以合成asf为例,讲述一个完整过程:即音视频从采集到编码,同步合成asf视频,然后可以将进行传输,为了方便,本例将合成的视频写入一个asf文件中,以供测试.注意: 测试需要使用终端通过: ffplay播放demo中录制好的文件,因为asf是windows才支持的格式,mac自带播放器无法播放.

irainsa的博客 471

FFmpeg处理音频视频

FFmpeg是一个开源的跨平台音视频处理工具和多媒体框架。它可以用于处理音频、视频、字幕等多媒体数据,支持多种音视频格式的转码、编辑、解码、编码和媒体传输等操作。FFmpeg是由Fabrice Bellard在2000年创建的,并由全球社区持续维护和改进。视频转码:将视频从一种格式转换为另一种格式,例如将MP4转换为MKV或WebM。音频转码:将音频从一种格式转换为另一种格式,例如将WAV转换为MP3或AAC。视频剪辑和合并:对视频进行剪辑、裁剪和合并,实现视频编辑功能。

Johntill的博客 1501

C# FFmpegVlc.DotNet拉优化参数

FFmpeg媒体开源神器,视频转换、剪裁包括,无所不能,很多系统都是基于其开发的。拉可以用FFplay,但是不利于集成到自己的代码中,因此拉选择了Vlc.DotNet。 在使用中,仅使用默认参数,会导致整体开销大、占用网络资源、硬件资源都很多,而且会导致较长的延迟,因此参数必须进行优化。

dgnankai的专栏 3626

FFmpeg简易播放器的实现3-音频播放

3]. 解码器内部会有缓冲机制,会缓存一定量的音频帧,不冲洗(flush)解码器的话,缓存帧是取不出来的,未冲洗(flush)解码器情况下,avcodec_receive_frame() 返回 AVERROR(EAGAIN),表示解码器中改取的帧已取完了(当然缓存帧还是在的),需要用 avcodec_send_packet() 向解码器提供新数据。[2]. 音频 frame 中的数据格式未必被 SDL 支持,对于不支持的音频 frame 格式,需要进行重采样,转换为 SDL 支持的格式声音才能正常播放。

yinshipin007的博客 432

FFMPEG音视频同步-音视频实时采集并编码-优化版本

FFMPEG读取实时音视频并编码-优化版本 //------------------------------------------------------------------------------------------------- 参考链接1、https://blog.csdn.net/leixiaohua1020/article/details/39702113 参考链接2、ht...

qinyi_style的博客 1万+

FFMPEG音视频同步-音视频实时采集并编码

FFMPEG读取实时音视频并编码 //------------------------------------------------------------------------------------------------- 参考链接1、https://blog.csdn.net/leixiaohua1020/article/details/39702113 参考链接2、https:/...

qinyi_style的博客 1万+

使用ffmpeg做RTMP直播,保存为mp4文件,音视频同步原理以及同步方法

相信很多像我一样只要接触过ffmpeg的人,都会对这个强大的音视频库产生很大的兴趣,因为几乎所有的音视频处理都离不开ffmpeg,我们平时自己开发一些小软件时,也可能会用到它。 但是,我们会发现,ffmpeg的使用也分几个层次,最开始的时候,我们完全是糊涂的,这个库怎么使用那么复杂,自己去编译一个android版或者windows版的ffmpeg库,可能折腾个好几天也没有一个好的输出结果。好不容...

烈火凌风的专栏 1万+

RTSP程深度解析:从协议原理到FFmpeg实现

本文深入分析了RTSP的技术原理和实现细节。主要内容包括:RTSP协议基础概念及其与HTTP的区别,与拉的差异;架构的整体设计,包含协议栈结构和数据向;完整的程时序图,涵盖TCP连接建立、能力协商、描述发布和传输通道建立等关键环节。文章结合FFmpeg源码分析,详细讲解了RTSP过程中的技术实现要点,为开发者提供了全面的技术参考。

qq_39267110的博客 1400

理解画面卡顿,花屏,音视频同步

很多刚接触ffmpeg的人,遇到时画面卡顿,就会头疼,为什么卡,是不是我音视频同步啊,代码哪里出问题等等。所以我们一定要理解卡顿是什么原因造成的,要理解什么情况下才需要做音视频同步,什么时候需要控制速度,理解花屏是什么原因引起的,更远一点,什么时候用队列,什么时候用多线程。 一、首先要明白一个很重要的一点,音视频同步是播放端在处理的逻辑。 你做的是什么,你是做,还是在做播放器。 你做端只需要保证pts,dts正确,播放器就能音视频同步音视频同步可以看ffplay.c的实现方式。 二、播放

cchao985771161的博客 2216

基于FFMPEG和SDL2的音视频直播功能制作-------3音视频同步

前言: 最近在进行一个PC对PC端的直播功能的研发,主要需要实现从PC端捕获桌面处理成H264视频,以及采集PC端的扬声器的声音处理成AAC音频,通过RTMP到服务器端中,然后客户端可以从服务器中拉并播放视频,最终实现直播的功能。该项目主要运用到FFMPEG实现音视频的编解码和拉,使用SDL进行对音视频的播放。 在实现该功能的过程中,总共可以分为如下几个模块: 1、音频的采集、编码; 2、桌面捕获和图像编码; 3、音视频同步(核心); 4、音视频的拉及解码; 5、音视频

weixin_41353840的博客 415

使用FFmpeg玩转音视频处理(操作大全)

本文整理大量FFmpeg相关操作,对于FFmpeg日常用法,相信这一篇就够了

不专业的专业人士 1986

ffmpeg rtmp音视频实现

为了方便理解,举个不恰当的例子,就好比做月饼一样,一套月饼就是容器,一套月饼肯定需要包装盒子,而包装盒子又有纸盒、铁盒不同材质,容器也一样,容器也有不用的格式mp4、flv等。月饼盒子里面又有一个小盒(装月饼),看成是,小盒子里时原滋原味的月饼,装的是音视频数据(不止有音视频数据、还有字幕等)。2、准备音视频,读取文件对其解封装,读取码数据,将其存储在队列中。“拿到原汁原味的月饼”紧接上篇文章,实现本地,需要经历容器层→解封装→容器层→协议层。3、开始读取队列,将读到数据写入文件中,进行

不断debug,优化中…… 1796

electron + fluent-ffmpeg送桌面、音视频、窗口

1、桌面 ffmpeg() .input('desktop') // 送桌面配置 .inputFormat('gdigrab') .inputOptions('-offset_x 0') .inputOptions('-offset_y 0') .inputOptions('-video_size 640x480') 2、音视频 // video和audio是摄像头和麦克风名称, // 可通过navigator.mediaDevices.enumerateDevices // 或者ffmpeg命令获取

pgLi 2500

windows下ffmpeg音视频采集并【较乱,懒的整理了】

【大多为搜集的文章,都归类为,转载。所以没有标明,来处。】 1. windows下ffmpeg的编译:         可参考:在windows下编译ffmpeg的详细说明         如:./configure --disable-yasm --enable-static --enable-indev=dshow 如果装了yasm,x264,就:./configure --enabl

fallenink的专栏 1万+

七、FFmpeg把视频同步到音频

1、如何同步视频 直到现在,我们的视频播放器还几乎无法正常工作,虽然它能播放视频,也能播放声音,但是声音和视频还没同步。那么现在我们要怎么做呢? 2、PTS和DTS的作用 音频和视频信息里面,都有一些信息用于表明应该以多快速度和什么时间来播放它们。音频有采样率,视频有帧率。但是如果只是简单的通过数帧和乘以帧率的方式来同步视频,那么同步很可能会出问题。为了可以实现同步,在中的数据包中有解码时间戳(DTS)和显示时间戳(PTS)。要理解这两个参数的作用,得先了解电影的存储方式。像MPEG等.

愿君出走半生,归来时仍是少年 1506

FFmpeg学习笔记-API理解

av_compare_ts: 在音视频复用(MUX)的时候比较时间戳,根据时间戳的先后顺序交叉写入音频包或视频包 /**  * Compare two timestamps each in its own time base.  *  * @return One of the following values:  *         - -1 if `ts_a` is befor

回头太难 1488
上一篇: 解决 av_read_frame() 文件尾(end of file)
下一篇: HLS详解(看这个就够了)
终成一个大象
博客等级 码龄12年 1万+粉丝 125原创
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值