我正在编写android视频播放器。到目前为止,在av_read_frame和avcodec_decode_video2的帮助下,我能够捕获帧,并更新到SDL2.0。我关注了dranger tutorial02.c http://dranger.com/ffmpeg/。
Sudo代码是:
while (1)
{
1. Read packet
2. check if video frame; if not Go to Step 3.
2.1 if video frame, then update with SDL_UpdateYUVTexture,
3. Handle SDL Event
4. Clear the Renderer.
5. Present Renderer.
}我想知道,当我只需要显示视频时,是否需要处理视频同步、dts/pts计算?
这种情况在三星手机上效果很好,但在其他手机上就不行了。
你的建议是什么?
发布于 2014-02-19 22:12:37
那得看情况。如果你可以接受这样的事实,即你的视频将a)以设备能够解码的速度播放,b)将在不同的设备上以不同的速度播放,甚至在相同的设备上播放取决于其他进程,那么你不需要同步,只要帧被解码就可以转储。
否则,您仍然需要将视频输出同步到PTS。由于您没有音频,也不会有音频时钟,因此您唯一的选择就是将视频同步到系统时钟,这会使它变得更简单。
https://stackoverflow.com/questions/21847364
复制相似问题