c# - 音频和视频不同步?
问题描述
我使用 nVLC 作为 vlc 包装器将 rtsp 视频流渲染到内存,然后为 NewFrame(音频和视频)引发事件。在捕获这些事件的类中。我使用 Accord.Video.FFMPEG.VideoFileWriter 来写入帧和音频字节(或信号)。但不幸的是,我一直在音频和视频之间有延迟。我试图追踪该延迟并提出以下建议:
1-延迟因流而异。即,一个流大约为 1800 毫秒(音频引导),另一个流大约为 3000 毫秒(音频引导也是)。
2-延迟与捕获帧和捕获音频信号之间的延迟无关。
3- 延迟与捕获视频 NewFrame 事件和捕获音频 NewFrame 事件之间的延迟无关。
4-延迟与互联网连接速度无关。
解决此问题的任何帮助将不胜感激。
谢谢
解决方案
我得到的最好的镜头是使用音频流作为主导流,即在帧时间大于或等于第一个记录的音频帧之前,永远不要从视频流中记录帧。捕获时声音帧的 PTS(Presentation Time Stamp),但图像的 PTS 是根据 player.Time (ms) 计算的,并使用每次 player.Time 更改时重置的秒表(在 TimeChanged事件)。
推荐阅读
- python - 在 python 中有没有办法向没有安装 python 的人显示 CLI 应用程序
- django - 具有两个字段的 django 字段。需要意见
- python - 特定行列的平均值
- internet-explorer - 我的 IE 浏览器版本是 11.239.* 但是当我检查代码时它显示版本为 IE 版本 7
- javascript - 如何访问forEach之后获得的对象的属性?
- entity-framework-core - 添加前键时列无效
- angular - NullInjectorError:FormBuilder 没有提供程序
- java - 如何从 Firebase 加载孩子
- appkit - 如何使用 NSTextView 进行批量显示
- java - 合并两个排序数组