Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将传输流PTS与MediaSync一起使用?_Java_Android_Video Streaming_Television_Mpeg2 Ts - Fatal编程技术网

Java 如何将传输流PTS与MediaSync一起使用?

Java 如何将传输流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前进

我正在尝试使用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同步

非常感谢 Gee72