Java 如何将传输流PTS与MediaSync一起使用?
我正在尝试使用Android.media类将录制的DVB传输流渲染到Android TV(索尼)并进行同步。这里不使用ExoPlayer 传输流包含几个音频和视频基本流,但我正在过滤一个视频流(MPEG-2)和一个音频流(MPEG-L2音频)。由于视频和音频都呈现良好,因此编解码器似乎配置正确 目前,这仅在我将PTS 0传递到时有效,但视频和音频不同步 如果我通过相应的PES PTS(转换为µs),则视频和音频会出现口吃。当我关闭视频并传递音频PTS而不是0时,也会发生这种情况。(视频PTS前进了-7200、3600、14400步,音频PTS前进了8640步。) 只要PTS不变,有效负载数据就会填充到输入缓冲区中。然后将缓冲区排队,并获取下一个可用缓冲区。输出缓冲区的处理与MediaSync示例中的描述完全相同 MediaSync对象是在找到第一个音频PES数据包时创建的。这里,设置了音轨,并在1.0开始播放。稍后,当找到第一个视频I帧时,将创建视频编解码器,并将SurfaceView的曲面传递给MediaSync对象 因此,我的问题是如何使用PTS和媒体编解码器a)平滑地呈现两个流,并可能b)进行a/V同步 非常感谢 Gee72Java 如何将传输流PTS与MediaSync一起使用?,java,android,video-streaming,television,mpeg2-ts,Java,Android,Video Streaming,Television,Mpeg2 Ts,我正在尝试使用Android.media类将录制的DVB传输流渲染到Android TV(索尼)并进行同步。这里不使用ExoPlayer 传输流包含几个音频和视频基本流,但我正在过滤一个视频流(MPEG-2)和一个音频流(MPEG-L2音频)。由于视频和音频都呈现良好,因此编解码器似乎配置正确 目前,这仅在我将PTS 0传递到时有效,但视频和音频不同步 如果我通过相应的PES PTS(转换为µs),则视频和音频会出现口吃。当我关闭视频并传递音频PTS而不是0时,也会发生这种情况。(视频PTS前进