Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"Couldn't determine next keyframe time" on firefox #5

Closed
legokichi opened this issue May 9, 2017 · 6 comments
Closed

"Couldn't determine next keyframe time" on firefox #5

legokichi opened this issue May 9, 2017 · 6 comments

Comments

@legokichi
Copy link
Owner

legokichi commented May 9, 2017

related: #3 (comment)

MOZ_LOG_FILE="log.txt" MOZ_LOG="MediaDemuxer:5" /Applications/Firefox.app/Contents/MacOS/firefox-bin

として起動した Firefox 53.0.2 (64 bit) で seekable にした動画を最後まで再生すると

[MediaPlayback #1]: D/MediaDemuxer WebMDemuxer(11e63f480)::SetNextKeyFrameTime: Couldn't determine next keyframe time  (0 queued)

が発生し、以後再生しようとしても

[MediaPlayback #1]: D/MediaDemuxer WebMDemuxer(11f008400)::GetBuffered: Duration: 9.371000 StartTime: 0.000000
[MediaPlayback #1]: D/MediaDemuxer WebMDemuxer(11f008400)::GetBuffered: limit range to duration, end: 9.466000 duration: 9.371000
[MediaPlayback #1]: D/MediaDemuxer WebMDemuxer(11f008400)::GetBuffered: add range 0.000000-9.371000
[MediaPlayback #1]: D/MediaDemuxer WebMDemuxer(11e63f480)::Reset: Seek to start point: 0.000000
[MediaPlayback #1]: D/MediaDemuxer WebMDemuxer(11f008400)::SeekInternal: Seek Target: 0.000000
[MediaPlayback #1]: D/MediaDemuxer WebMDemuxer(11f008400)::SeekInternal: SeekPreroll: 0.080000 StartTime: 0.000000 Adjusted Target: 0.000000
[MediaPlayback #1]: D/MediaDemuxer WebMDemuxer(11e63f480)::SetNextKeyFrameTime: Couldn't determine next keyframe time  (0 queued)

が繰り返されて再生できない。

@legokichi
Copy link
Owner Author

http://searchfox.org/mozilla-central/source/dom/media/webm/WebMDemuxer.cpp#1210

  if (frameTime.IsValid()) {
    mNextKeyframeTime.emplace(frameTime);
    WEBM_DEBUG("Next Keyframe %f (%u queued %.02fs)",
               mNextKeyframeTime.value().ToSeconds(),
               uint32_t(mSamples.GetSize()),
               (mSamples.Last()->mTimecode - mSamples.First()->mTimecode).ToSeconds());
  } else {
    WEBM_DEBUG("Couldn't determine next keyframe time  (%u queued)",
               uint32_t(mSamples.GetSize()));
  }

why not valid?

@legokichi
Copy link
Owner Author

legokichi commented May 9, 2017

$ mkvalidator ./test/firefox55nightly.webm
ERR200: Missing element 'Seek' in SeekHead at 55
WRN00C: Unknown element in TrackEntry [56][AA] at 239 (size 4 total 7)
WRN00C: Unknown element in TrackEntry [56][BB] at 246 (size 4 total 7)
WRN861: The SegmentInfo is not referenced in the main SeekHead
WRN861: The TrackInfo is not referenced in the main SeekHead
ERR0B1: SimpleBlock at 57842 track #2 is not a keyframe
ERR0B1: SimpleBlock at 58033 track #2 is not a keyframe
ERR0B1: SimpleBlock at 58145 track #2 is not a keyframe
...
ERR0B1: SimpleBlock at 2750677 track #2 is not a keyframe
ERR0B1: SimpleBlock at 2762102 track #2 is not a keyframe
ERR0B1: SimpleBlock at 2762239 track #2 is not a keyframe

Is this related?

https://github.com/Matroska-Org/foundation-source/blob/91a1cff9725c879486f927e61d17bd4243f677b4/mkvalidator/mkvalidator.c#L780

@legokichi legokichi changed the title Couldn't determine next keyframe time "Couldn't determine next keyframe time" May 9, 2017
@legokichi
Copy link
Owner Author

legokichi commented May 10, 2017

Webm video recorded with MediaRecorder cannot be played more than once -
https://bugzilla.mozilla.org/show_bug.cgi?id=1272371

@legokichi
Copy link
Owner Author

rec.start.(100); から rec.start.(); にすると確かに original の webm は繰り返し再生できるようになった。
しかし duration だけ、cues だけ、 duration と cues両方追加したものは Couldn't determine next keyframe time が発生して繰り返し再生できなかった。

@legokichi
Copy link
Owner Author

timesliceありなしでバイナリの比較が必要

@legokichi legokichi changed the title "Couldn't determine next keyframe time" "Couldn't determine next keyframe time" on firefox Jun 15, 2017
@legokichi
Copy link
Owner Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant