android - ffmpeg 在 Android 中仅显示视频

标签 android ffmpeg sdl-2

我正在用 android 编写视频播放器。到目前为止,我可以在 av_read_frame 和 avcodec_decode_video2 的帮助下捕获帧,并更新到 SDL2.0。我已经关注了danger tutorial02.c http://dranger.com/ffmpeg/ .

须藤代码是:

 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 计算?

这种情况在三星上运行良好,但在其他手机上却不行。

你有什么建议?

最佳答案

这取决于。如果您对以下事实感到满意,即您的视频将 a)以设备可以解码的速度播放,并且 b)将在不同的设备上以不同的速度播放,甚至在同一设备上播放,具体取决于其他进程,那么您不会需要同步,并且可以在解码后立即转储帧。

否则,您仍然需要将视频输出同步到 PTS。由于您没有音频,也没有音频时钟,因此您唯一的选择是将视频与系统时钟同步,这样会更简单。

关于android - ffmpeg 在 Android 中仅显示视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21847364/

相关文章:

android - 我怎样才能在android中创建像iphone设置这样的 View ?

android - 在 AWS-China 和 AWS-Global 之间更改应用程序中的区域

c - 生成文件的多个额外标志

android - 自定义样式列表分隔符

java - 如何在方向更改时重新定位 fragment 中的网格布局元素?

encoding - ffmpeg 无法识别 x265 选项

javascript - 流利的ffmpeg progress.percent返回未定义

c++ - SDL 2 通过 SpriteManager 在屏幕上显示图像,获取指针中断

rust - headless SDL 事件处理

python - pysdl2访问冲突显示图像