Qt/C++音视频开发72-倍速推流/音视频同步倍速推流/不改变帧率和采样率/低倍速和高倍速

本文介绍了使用Qt/C++实现音视频倍速推流的技术,通过调整pts和dts实现倍速播放和推流。支持各种本地和网络音视频文件、网络摄像头、本地摄像头和桌面采集推流,具备自动重连和音视频同步功能。提供了相关代码和体验地址。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前言

最近多了个新需求,需要倍速推流,推流界的扛把子obs也有倍速推流功能,最高支持到两倍速。这里所说的倍速,当然只限定在文件,只有文件才可能有倍速功能,因为也只有文件才能倍速解码播放。实时视频流是不可能倍速的,因为没有时长,有时长的才可以按照播放进度来。是否是文件也不能通过是不是本地文件等来判断,以为很多http/rtsp/m3u8等也可能是文件,具体最终的判断依据应该是有没有时长,能不能获取到时长,能获取到的就说明是文件。

倍速推流和倍速播放功能相通,在ffmpeg做音视频解码常识中,有个pts和dts就是用来控制显示时间和解码时间的,如果这两个值除以2就说明时间少了一半,就是2倍速,乘以2就表示时间多了2倍,就是0.5倍速,基本上的运算公式就是 packet.pts = packet.pts/speed,其中这个speed速度参数是float类型。倍速播放的时候其实就是将收到的packet的pts/dts更改后,再送入解码,而推流其实就是保存,保存到rtsp地址就是将数据推流到rtsp,所以将这个值经过同样的运算发出去,就形成了倍速推流。

公众号:Qt实战,各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值