首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何同步录制和输入直播流?

如何同步录制和输入直播流?
EN

Stack Overflow用户
提问于 2012-10-03 19:07:04
回答 1查看 1.2K关注 0票数 1

我正在做一个项目,在这个项目中,我从一些输入视频设备接收原始帧。我正在尝试使用FFMPEG库在视频文件中写入这些帧。我无法控制从输入源获得的帧率。此帧速率在运行时也会发生变化。现在我的问题是如何在录制的视频和即将到来的视频之间进行同步。根据我在FFMPEG中设置的帧速率和我接收的实际帧速率,录制视频的回放比输入视频快或慢。我试着按照下面的链接在编码的视频中添加时间戳(如numOfFrames),但没有帮助。

ffmpeg speed encoding problem

请告诉我一种同步两者的方法。这是我第一次使用FFMPEG或任何多媒体库,因此任何示例都将受到高度赞赏。

我正在使用directshow ISampleGrabber接口来捕获这些帧。谢谢

EN

回答 1

Stack Overflow用户

发布于 2012-10-06 14:56:55

所以我终于想出了怎么做。下面是如何..

首先,我从不给帧时间戳的源过滤器的预览引脚中获取预览。因此,应该从源滤波器的捕获引脚获取帧。在SampleCB回调函数中,我们不能使用IMediaSample::GetTime()来获取时间。但此函数将以100 of为单位返回时间。FFMPEG要求它以1/time_base为单位。其中,time_base是所需的帧速率。因此,directshow时间戳需要首先转换为FFMPEG单位。然后我们可以在ffmpeg的AVFrame::pts变量中设置pt。另一件需要考虑的事情是视频的第一帧在FFMPEG中应该有时间戳0,所以在从directshow时间戳转换到FFMPEG 1时需要注意这一点。

谢谢

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12707224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档