【问题标题】:Why would HLS stream distort in Stagefright 1.2 when ts files change?为什么当 ts 文件更改时,Stagefright 1.2 中的 HLS 流会失真?
【发布时间】:2013-06-29 08:43:58
【问题描述】:

我已经设置了Apache 2.0,其中有几个.m3u8 文件为HLS 上的一组mpeg2ts 文件提供服务。这些ts 文件是由transmuxingMP4libavformat 生成的,我是从youtube 下载的。当我在VLCQT 上播放生成的HLS 时,一切正常。但在 Android (Stagefright 1.2) 上,该视频有几个问题:

  1. 全屏选项不起作用
  2. 视频时长显示为 1:40,实际上是 2:00
  3. 视频有时无法启动,您必须重新加载页面
  4. 当切换底层.ts 流时,视频在转换点可靠地失真(撕裂和像素化)。

如果我不使用HTML5 的标签,这会有所改善。但问题 #4 仍然存在。

我可以在 Stagefright 上播放其他 m3u8 没有任何上述问题,所以我假设我的转换代码是错误的,但即使放弃它并使用(最近添加的)HLS@987654337 的分段功能@ 我也有同样的问题。使用libx264 重新编码没有任何改变。

我正在调试这个。

【问题讨论】:

    标签: android video http-live-streaming distortion stagefright


    【解决方案1】:

    Android 的 libstagefright(以及 mediaservice 的 NuPlayer)不像 vlc 那样成熟,并且在使用 vlc 时不存在的许多问题在 android 中存在,它更容易受到任何损坏、损坏、偏离的内容的影响。

    此类像素化/宏块伪影通常存在于解码前丢弃(由 Android 代码或丢失)的某些帧。

    如果这些损坏与一些绿色字段一起出现,则可能是格式更改与关键帧的同步存在问题(这可能是源执行错误的结果,或者部分通知了 ANativeWindow 格式更改)。 在极端情况下,您可能看不到任何绿框,但裁剪/分辨率会出现偏差,并且可能会出现像素化)。

    我会做什么: 1) 检查丢帧 2)检查连续部分边界的一些分析器框架

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-12
      • 1970-01-01
      • 2019-12-31
      • 1970-01-01
      • 2018-09-06
      • 1970-01-01
      • 2021-03-30
      • 2021-10-11
      相关资源
      最近更新 更多