Green artifacts appear on specific video playback via MSE and (FFmpegDemux+Decode) SRC
Reported by
goncha...@wmspanel.com,
Mar 5 2018
|
|||||||||||||
Issue descriptionUserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36 Steps to reproduce the problem: 1. Create video element with media source attached and add source buffer for "avc1.42c01f" codec. 2. Push init segment to the source buffer (init_seg.m4s attached) 3. Retrieve frames from the demo.mp4 file and pack them individually into mp4 fragments (see frame1.mp4 for reference) 4. Feed the source buffer with produced mp4 fragments. What is the expected behavior? The video is played correctly. Please see firefox_ok.png attachment. What went wrong? Green artifacts appear on top of the video. Please see chrome_bug.png attachment. Did this work before? No Does this work in other browsers? Yes Chrome version: 64.0.3282.186 Channel: stable OS Version: Flash Version: This bug should be addressed to Internals>Media>Source component, but it's not available in the select box above. The issue is reproduced in Chrome and Edge browsers. Firefox and Safari behave correctly. If the whole GOP or serveral GOPs are packed into single mp4 fragment (all fragments start with an I-frame), then the issue is NOT reproduced. If particular mp4 fragment starts with a P-frame, then the issue is reproduced.
,
Mar 6 2018
goncharov@ Thanks for the issue. Tested this issue on Windows 10 and Ubuntu 14.04 on the reported version 64.0.3282.186 and the latest Canary 67.0.3362.0 by following the below steps. 1. Launched Chrome and played the video demo.mp4 on chrome and couldn't observe any Green artifacts while the video is playing. 2. On opening the file init-seg.m4s file, can observe the error 'This file contains no playable streams'. Also unable to view the attached frame1.mp4 video. Attached is the screen shot for reference. Request you to check and confirm if anything is missed from our end in reproducing the issue. Also request you to provide a URL where this issue can be reproduced which will help in further triaging. Thanks..
,
Mar 6 2018
Hello Susan, Thanks for your feedback. This is MSE specific issue. The point is that video frames must be packed individually into mp4 segments (or at least each segment must contain only part of a GOP) and appended to media source buffer. If I put all such segments into single mp4 file and assign that file as a source for video element, then the issue is not reproduced. As you requested, I've created a test page for demonstration http://dev.wmspanel.com/test.html
,
Mar 6 2018
Thank you for providing more feedback. Adding the requester to the cc list. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Mar 6 2018
I also attach mp4 file which contains init segment and one frame media segments for further reference.
,
Mar 8 2018
Able to reproduce the issue on Ubuntu 17.10 using chrome latest stable #65.0.3325.146 and latest canary #67.0.3365.0. This is a non-regression issue as it is observed from M60 old builds. Hence, marking it as untriaged to get more inputs from dev team. Thanks...!!
,
Mar 8 2018
Issue is not seen in OS-Win and OS-Mac.
,
Mar 9 2018
,
Mar 9 2018
+matt,chris
,
Mar 9 2018
I'll take a look soon. Thanks for reporting.
,
Mar 9 2018
@#5 : simply playing that mp4 (via src=, not MSE), by clicking on the play button in crbug.com in Chrome M64 on linux reproduces green artifacts (ffmpeg demuxer + ffmpeg video decode). It could be that ffmpeg is confused by the fragmented media stream. I'll try with extra logging and with MSE shortly to see if I can figure out what's happening.
,
Mar 9 2018
There is at least some fix needed in current upstream ffmpeg. When playing #5 with ffplay using sanitizer tooling, there are some problems reported. I'll follow-up with upstream along with further investigation.
,
Mar 9 2018
,
Mar 9 2018
I've reported the sanitizer errors to upstream ffmpeg (Michael). I'll follow-up during/after the current ffmpeg roll to see if those were the reason for the artifacts.
,
Mar 12 2018
Hello Matthew, Thanks for shedding some light on this problem. @#7 : My observation is different. I've reproduced the issue in Win10 using Chrome and Edge browsers. It's not Linux specific. Best regards, Andrew
,
Mar 12 2018
@#15: I don't know about Edge, but when you reproduced the issue on Win10 using Chrome, what video decoder does chrome://media-internals show the player using? If FFmpegVideoDecoder, that would be similar to what's observed on Linux that I reported to upstream ffmpeg in #14.
,
Mar 12 2018
Michael's alignment fix is in upstream review (Note, this should fix the alignment warning found with ffplay; I was unable to reproduce such warning with instrumented media_pipeline_integration_fuzzer.) http://ffmpeg.org/pipermail/ffmpeg-devel/2018-March/226386.html goncharov@: I've tried playing (src=) them test.mp4 from #5 on both M64 (linux) and current tip-of-tree (early M67, linux): it no longer reproduces green in tip-of-tree, but there is a video glitch at about that point. This makes me suspect the content. Does your issue reproduce on M65? It doesn't appear to be specific to MSE (from the M64 repro of plain src=test.mp4).
,
Mar 13 2018
@#16 : Green artifacts on Win10 Chrome are different. They occupy almost all space (attached a screenshot). The decoder isn't FFmpeg. render_id: 17 player_id: 6 origin_url: http://dev.wmspanel.com/ frame_url: http://dev.wmspanel.com/test.html frame_title: url: blob:http://dev.wmspanel.com/8580cd80-6584-422d-bae2-601041e36da0 info: Effective playback rate changed from 0 to 1 pipeline_state: kPlaying found_video_stream: true video_codec_name: h264 debug: Video rendering in low delay mode. video_dds: false video_decoder: GpuVideoDecoder seek_target: 6.921 video_buffering_state: BUFFERING_HAVE_ENOUGH height: 720 width: 1280 pipeline_buffering_state: BUFFERING_HAVE_ENOUGH event: PAUSE duration: unknown
,
Mar 13 2018
@#17: I still think that the issue is MSE specific, because I wasn't able to reproduce it with src= video tag. That's why I've created a test case http://dev.wmspanel.com/test.html, please take a look (there is 10Mb js file containing frames, so it can take a little while). The issue is still reproducible in Chrome M65 (both Win and Linux). The content is recorded via FFmpeg (codec copy) from a ground drone. I suspect that content is not ideal, because re-encoding it via FFmpeg fixes the problem. But it's played well in Firefox, Safari and VLC. It's also played well in Chrome if single segment contains natural number of GOP's. If the content is really bad, then there shouldn't be such a difference. What do you think?
,
Mar 15 2018
The NextAction date has arrived: 2018-03-15
,
Mar 19 2018
wolenetz@ A gentle ping !!! Request you to please provide an update on this bug. Thanks.
,
Mar 20 2018
Looking further now that Chromium M67 trunk contains the M67 ffmpeg roll.
,
Mar 20 2018
I'm seeing some differences in ffmpeg decode log messages of #19's MSE test versus upstream ffmpeg's ffplay of #5's test.mp4. They could indicate errors in the encoded h264 and/or framing of the MSE bytestream. Or possibly there is some difference in decoder context's error_concealment setting in MSE vs plain src= in Chromium. I'll continue looking into these dimensions tomorrow.
,
Mar 22 2018
Adding 'TE-NeedsTriageHelp' to move this issue out of TE Unconfirmed triaging bucket, as the issue is reproduced at TE end and confirmed the same in Comment #6. Thanks..
,
Mar 22 2018
Sheriffing now - will look further next week.
,
Mar 23 2018
,
May 4 2018
Hello wolenetz@ Could you please let me know if there's any update on this issue? Thank you |
|||||||||||||
►
Sign in to add a comment |
|||||||||||||
Comment 1 by krajshree@chromium.org
, Mar 6 2018