New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 691265 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Jun 2017
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Mac
Pri: 2
Type: Bug



Sign in to add a comment

Video is choppy/halting while streaming

Reported by hissoldi...@gmail.com, Feb 11 2017

Issue description

UserAgent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36

Example URL:
http://sharpeyed.zflministries.com

Steps to reproduce the problem:
1. Go to http://sharpeyed.zflministries.com
2. Play the video directly on the home page.
3. Result is that the video becomes choppy or halting.
4. Open up the developer tools area and see the Network requests for the video.

Opening in Edge, Opera, Safari (last version for Windows), and Firefox does not repro.  It does not repro on Safari on the iPad or iPhone.

Two other users have repro'ed this issue with Chrome (and one with Firefox) on their Macs.

What is the expected behavior?
For the streaming to be smooth like Opera's. If you go to the Network developer tool area, you would see a lot of "cancel" requests in Chrome as opposed to Opera's.

What went wrong?
Not sure what went wrong, but video play is not as smooth as the other browsers.  At first I thought it may be a caching issue, but that doesn't explain why it's working in other browsers.  This also repros with two other users in Chrome who are using the Mac (although one does say it repros in Firefox).

Did this work before? N/A 

Is it a problem with Flash or HTML5? HTML5

Does this work in other browsers? Yes

Chrome version: 56.0.2924.87  Channel: stable
OS Version: 10.0
Flash Version: Shockwave Flash 24.0 r0

Contents of chrome://gpu: 
Graphics Feature Status
Canvas: Software only, hardware acceleration unavailable
Flash: Hardware accelerated
Flash Stage3D: Hardware accelerated
Flash Stage3D Baseline profile: Hardware accelerated
Compositing: Hardware accelerated
Multiple Raster Threads: Enabled
Native GpuMemoryBuffers: Software only. Hardware acceleration disabled
Rasterization: Software only. Hardware acceleration disabled
Video Decode: Hardware accelerated
Video Encode: Hardware accelerated
VPx Video Decode: Hardware accelerated
WebGL: Hardware accelerated
WebGL2: Hardware accelerated
Driver Bug Workarounds
clear_uniforms_before_first_program_use
disable_discard_framebuffer
disable_dxgi_zero_copy_video
disable_framebuffer_cmaa
exit_on_context_lost
scalarize_vec_and_mat_constructor_args
Problems Detected
GPU rasterization should only be enabled on NVIDIA Pascal and Maxwell, Intel Broadwell+, and AMD RX-R5 GPUs for now.: 643850
Disabled Features: gpu_rasterization
Some drivers are unable to reset the D3D device in the GPU process sandbox
Applied Workarounds: exit_on_context_lost
Clear uniforms before first program use on all platforms: 124764, 349137
Applied Workarounds: clear_uniforms_before_first_program_use
Always rewrite vec/mat constructors to be consistent: 398694
Applied Workarounds: scalarize_vec_and_mat_constructor_args
Framebuffer discarding can hurt performance on non-tilers: 570897
Applied Workarounds: disable_discard_framebuffer
Limited enabling of Chromium GL_INTEL_framebuffer_CMAA: 535198
Applied Workarounds: disable_framebuffer_cmaa
Zero-copy NV12 video displays incorrect colors on NVIDIA drivers.: 635319
Applied Workarounds: disable_dxgi_zero_copy_video
Accelerated rasterization has been disabled, either via blacklist, about:flags or the command line.
Disabled Features: rasterization
Native GpuMemoryBuffers have been disabled, either via about:flags or command line.
Disabled Features: native_gpu_memory_buffers
Version Information
Data exported	2/11/2017, 12:31:13 PM
Chrome version	Chrome/56.0.2924.87
Operating system	Windows NT 10.0.14393
Software rendering list version	12.06
Driver bug list version	9.24
ANGLE commit id	a4aaa2de57dc
2D graphics backend	Skia/56 bf2d9e02d58ea01f1c239f7e2fc024cba140ccb1
Command Line Args	--flag-switches-begin --disable-cast-streaming-hw-encoding --flag-switches-end
Driver Information
Initialization time	0
In-process GPU	true
Sandboxed	false
GPU0	VENDOR = 0x10de, DEVICE= 0x0df8
Optimus	false
AMD switchable	false
Desktop compositing	Aero Glass
Diagonal Monitor Size of \\.\DISPLAY2	18.0"
Diagonal Monitor Size of \\.\DISPLAY1	18.0"
Driver vendor	NVIDIA
Driver version	21.21.13.7586
Driver date	11-10-2016
Pixel shader version	
Vertex shader version	
Max. MSAA samples	
Machine model name	
Machine model version	
GL_VENDOR	
GL_RENDERER	
GL_VERSION	
GL_EXTENSIONS	
Disabled Extensions	
Window system binding vendor	
Window system binding version	
Window system binding extensions	
Direct rendering	Yes
Reset notification strategy	0x0000
GPU process crash count	0
Compositor Information
Tile Update Mode	One-copy
Partial Raster	Enabled
GpuMemoryBuffers Status
ATC	Software only
ATCIA	Software only
DXT1	Software only
DXT5	Software only
ETC1	Software only
R_8	Software only
RG_88	Software only
BGR_565	Software only
RGBA_4444	Software only
RGBX_8888	Software only
RGBA_8888	Software only
BGRX_8888	Software only
BGRA_8888	Software only
YVU_420	Software only
YUV_420_BIPLANAR	Software only
UYVY_422	Software only
Diagnostics
... loading ...
Log Messages
GpuProcessHostUIShim: The GPU process exited normally. Everything is okay.

I've tried some suggestions on other forums (disabling hardware acceleration, resetting all settings, disabling plug-ins/extensions, etc.

 
By the way, when I open up the same video locally in Chrome (i.e. loaded directly from my hard drive), it works just fine in Chrome.  
Also, FWIW, I tested it out with another video, a MP4 formatted version, with the same resolution and it works just fine (same server location).  I wonder if it's the M4V format, although that won't explain why it works fine in the other browsers.
Update: I converted the M4V video to a MP4 version (H-264/AVC codec at 720p, 30 f/s, with tpe of mp4 iso v.2 and it now streams just fine (all smooth and no chopping).  However, I'm going to leave the URL for the M4V video at http://www.zflministries.com/DataContent/HomePageWelcome.m4v for your perusal if you decide to fix this bug or let me know if it's a bug on my side.  Thanks.
In any case, here's the working MP4 video to compare against: http://www.zflministries.com/DataContent/HomePageWelcome-H264.mp4.
Labels: Needs-Triage-M56
Likely this means the muxing between audio and video segments is too far apart in the original container; which causes us to have to seek repeatedly in order to get concurrent audio and video buffers.
Labels: -Needs-Triage-M56 M-58 OS-Linux OS-Mac
Status: Untriaged (was: Unconfirmed)
Able to reproduce this issue on Mac 10.12.2, Win-10 and Ubuntu 14.04 using chrome reported version #56.0.2924.87 and latest canary #58.0.3011.0.

This is a non-regression issue as it is observed from M30 old builds. 

Hence, marking it as untriaged to get more inputs from dev team.

Thanks...!!
I am one of the other users that poster alluded to in his original post.  Here are the contents of my chrome://gpu:

Graphics Feature Status
Canvas: Hardware accelerated
Flash: Hardware accelerated
Flash Stage3D: Hardware accelerated
Flash Stage3D Baseline profile: Hardware accelerated
Compositing: Hardware accelerated
Multiple Raster Threads: Enabled
Native GpuMemoryBuffers: Hardware accelerated
Rasterization: Hardware accelerated
Video Decode: Hardware accelerated
Video Encode: Hardware accelerated
VPx Video Decode: Hardware accelerated
WebGL: Hardware accelerated
WebGL2: Hardware accelerated
Driver Bug Workarounds
add_and_true_to_loop_condition
adjust_src_dst_region_for_blitframebuffer
decode_encode_srgb_for_generatemipmap
disable_framebuffer_cmaa
disable_multimonitor_multisampling
disable_webgl_rgb_multisampling_usage
emulate_abs_int_function
get_frag_data_info_bug
init_two_cube_map_levels_before_copyteximage
msaa_is_slow
pack_parameters_workaround_with_pack_buffer
rebind_transform_feedback_before_resume
regenerate_struct_names
remove_invariant_and_centroid_for_essl3
reset_base_mipmap_level_before_texstorage
rewrite_texelfetchoffset_to_texelfetch
scalarize_vec_and_mat_constructor_args
set_zero_level_before_generating_mipmap
unfold_short_circuit_as_ternary_operation
unpack_alignment_workaround_with_unpack_buffer
unpack_image_height_workaround_with_unpack_buffer
use_intermediary_for_copy_texture_image
use_shadowed_tex_level_params
use_unused_standard_shared_blocks
Problems Detected
Multisampling is buggy on OSX when multiple monitors are connected: 237931
Applied Workarounds: disable_multimonitor_multisampling
Unfold short circuit on Mac OS X: 307751
Applied Workarounds: unfold_short_circuit_as_ternary_operation
Always rewrite vec/mat constructors to be consistent: 398694
Applied Workarounds: scalarize_vec_and_mat_constructor_args
Mac drivers handle struct scopes incorrectly: 403957
Applied Workarounds: regenerate_struct_names
On Intel GPUs MSAA performance is not acceptable for GPU rasterization: 527565
Applied Workarounds: msaa_is_slow
glGenerateMipmap fails if the zero texture level is not set on some Mac drivers: 560499
Applied Workarounds: set_zero_level_before_generating_mipmap
Pack parameters work incorrectly with pack buffer bound: 563714
Applied Workarounds: pack_parameters_workaround_with_pack_buffer
Alignment works incorrectly with unpack buffer bound: 563714
Applied Workarounds: unpack_alignment_workaround_with_unpack_buffer
copyTexImage2D fails when reading from IOSurface on multiple GPU types.: 581777
Applied Workarounds: use_intermediary_for_copy_texture_image
Multisample renderbuffers with format GL_RGB8 have performance issues on Intel GPUs.: 607130
Applied Workarounds: disable_webgl_rgb_multisampling_usage
Mac Drivers store texture level parameters on int16_t that overflow: 610153
Applied Workarounds: use_shadowed_tex_level_params
Limited enabling of Chromium GL_INTEL_framebuffer_CMAA: 535198
Applied Workarounds: disable_framebuffer_cmaa
glGetFragData{Location|Index} works incorrectly on Max: 638340
Applied Workarounds: get_frag_data_info_bug
glResumeTransformFeedback works incorrectly on Intel GPUs: 638514
Applied Workarounds: rebind_transform_feedback_before_resume
glTexStorage* are buggy when base mipmap level is not 0: 640506
Applied Workarounds: reset_base_mipmap_level_before_texstorage
Result of abs(i) where i is an integer in vertex shader is wrong: 642227
Applied Workarounds: emulate_abs_int_function
Rewrite texelFetchOffset to texelFetch for Intel Mac: 642605
Applied Workarounds: rewrite_texelfetchoffset_to_texelfetch
Rewrite condition in for and while loops for Intel Mac: 644669
Applied Workarounds: add_and_true_to_loop_condition
Decode and encode before generateMipmap for srgb format textures on macosx: 634519
Applied Workarounds: decode_encode_srgb_for_generatemipmap
Init first two levels before CopyTexImage2D for cube map texture on Intel Mac 10.12: 648197
Applied Workarounds: init_two_cube_map_levels_before_copyteximage
Insert statements to reference all members in unused std140/shared blocks on Mac: 618464
Applied Workarounds: use_unused_standard_shared_blocks
Tex(Sub)Image3D performs incorrectly when uploading from unpack buffer with GL_UNPACK_IMAGE_HEIGHT greater than zero on Intel Macs: 654258
Applied Workarounds: unpack_image_height_workaround_with_unpack_buffer
adjust src/dst region if blitting pixels outside read framebuffer on Mac: 644740
Applied Workarounds: adjust_src_dst_region_for_blitframebuffer
Mac driver GL 4.1 requires invariant and centroid to match between shaders: 639760, 641129
Applied Workarounds: remove_invariant_and_centroid_for_essl3
Version Information
Data exported	2/15/2017, 8:33:15 PM
Chrome version	Chrome/56.0.2924.87
Operating system	Mac OS X 10.12.3
Software rendering list version	12.06
Driver bug list version	9.24
ANGLE commit id	a4aaa2de57dc
2D graphics backend	Skia/56 bf2d9e02d58ea01f1c239f7e2fc024cba140ccb1
Command Line Args	Chrome.app/Contents/MacOS/Google Chrome -psn_0_49164 --restore-last-session --flag-switches-begin --flag-switches-end
Driver Information
Initialization time	152
In-process GPU	false
Sandboxed	true
GPU0	VENDOR = 0x8086, DEVICE= 0x1626 *ACTIVE*
Optimus	false
AMD switchable	false
Driver vendor	
Driver version	10.22.29
Driver date	
Pixel shader version	4.10
Vertex shader version	4.10
Max. MSAA samples	8
Machine model name	MacBookAir
Machine model version	7.1
GL_VENDOR	Intel Inc.
GL_RENDERER	Intel(R) HD Graphics 6000
GL_VERSION	4.1 INTEL-10.22.29
GL_EXTENSIONS	GL_ARB_blend_func_extended GL_ARB_draw_buffers_blend GL_ARB_draw_indirect GL_ARB_ES2_compatibility GL_ARB_explicit_attrib_location GL_ARB_gpu_shader_fp64 GL_ARB_gpu_shader5 GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_occlusion_query2 GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_separate_shader_objects GL_ARB_shader_bit_encoding GL_ARB_shader_subroutine GL_ARB_shading_language_include GL_ARB_tessellation_shader GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_cube_map_array GL_ARB_texture_gather GL_ARB_texture_query_lod GL_ARB_texture_rgb10_a2ui GL_ARB_texture_storage GL_ARB_texture_swizzle GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_vertex_attrib_64bit GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_EXT_debug_label GL_EXT_debug_marker GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_texture_compression_s3tc GL_EXT_texture_filter_anisotropic GL_EXT_texture_sRGB_decode GL_APPLE_client_storage GL_APPLE_container_object_shareable GL_APPLE_flush_render GL_APPLE_object_purgeable GL_APPLE_rgb_422 GL_APPLE_row_bytes GL_APPLE_texture_range GL_ATI_texture_mirror_once GL_NV_texture_barrier
Disabled Extensions	
Window system binding vendor	
Window system binding version	
Window system binding extensions	
Direct rendering	Yes
Reset notification strategy	0x0000
GPU process crash count	0
Compositor Information
Tile Update Mode	Zero-copy
Partial Raster	Enabled
GpuMemoryBuffers Status
ATC	Software only
ATCIA	Software only
DXT1	Software only
DXT5	Software only
ETC1	Software only
R_8	GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT
RG_88	Software only
BGR_565	Software only
RGBA_4444	Software only
RGBX_8888	Software only
RGBA_8888	GPU_READ, SCANOUT
BGRX_8888	GPU_READ, SCANOUT
BGRA_8888	GPU_READ, SCANOUT, GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT
YVU_420	Software only
YUV_420_BIPLANAR	GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT
UYVY_422	GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT
Log Messages
[376:775:0215/161809.768257:ERROR:texture_manager.cc(2425)] : [.PPAPIContext]GL ERROR :GL_INVALID_ENUM : glTexImage2D: target was GL_TEXTURE_RECTANGLE_ARB
[376:775:0215/161809.768388:ERROR:texture_manager.cc(2425)] : [.PPAPIContext]GL ERROR :GL_INVALID_ENUM : glTexImage2D: target was GL_TEXTURE_RECTANGLE_ARB
[376:775:0215/161809.768435:ERROR:texture_manager.cc(2425)] : [.PPAPIContext]GL ERROR :GL_INVALID_ENUM : glTexImage2D: target was GL_TEXTURE_RECTANGLE_ARB
[376:775:0215/161809.768475:ERROR:texture_manager.cc(2425)] : [.PPAPIContext]GL ERROR :GL_INVALID_ENUM : glTexImage2D: target was GL_TEXTURE_RECTANGLE_ARB
[376:775:0215/161809.768514:ERROR:texture_manager.cc(2425)] : [.PPAPIContext]GL ERROR :GL_INVALID_ENUM : glTexImage2D: target was GL_TEXTURE_RECTANGLE_ARB
[376:775:0215/161815.586163:ERROR:texture_manager.cc(2425)] : [.PPAPIContext]GL ERROR :GL_INVALID_ENUM : glTexImage2D: target was GL_TEXTURE_RECTANGLE_ARB
[376:775:0215/161815.586239:ERROR:texture_manager.cc(2425)] : [.PPAPIContext]GL ERROR :GL_INVALID_ENUM : glTexImage2D: target was GL_TEXTURE_RECTANGLE_ARB
[376:775:0215/161815.586288:ERROR:texture_manager.cc(2425)] : [.PPAPIContext]GL ERROR :GL_INVALID_ENUM : glTexImage2D: target was GL_TEXTURE_RECTANGLE_ARB
[376:775:0215/161815.586330:ERROR:texture_manager.cc(2425)] : [.PPAPIContext]GL ERROR :GL_INVALID_ENUM : glTexImage2D: target was GL_TEXTURE_RECTANGLE_ARB
[376:775:0215/161815.586385:ERROR:texture_manager.cc(2425)] : [.PPAPIContext]GL ERROR :GL_INVALID_ENUM : glTexImage2D: target was GL_TEXTURE_RECTANGLE_ARB
[376:775:0215/161821.600269:ERROR:texture_manager.cc(2425)] : [.PPAPIContext]GL ERROR :GL_INVALID_ENUM : glTexImage2D: target was GL_TEXTURE_RECTANGLE_ARB
[376:775:0215/161821.600331:ERROR:texture_manager.cc(2425)] : [.PPAPIContext]GL ERROR :GL_INVALID_ENUM : glTexImage2D: target was GL_TEXTURE_RECTANGLE_ARB
[376:775:0215/161821.600383:ERROR:texture_manager.cc(2425)] : [.PPAPIContext]GL ERROR :GL_INVALID_ENUM : glTexImage2D: target was GL_TEXTURE_RECTANGLE_ARB
[376:775:0215/161821.600512:ERROR:texture_manager.cc(2425)] : [.PPAPIContext]GL ERROR :GL_INVALID_ENUM : glTexImage2D: target was GL_TEXTURE_RECTANGLE_ARB
[376:775:0215/161821.600587:ERROR:texture_manager.cc(2425)] : [.PPAPIContext]GL ERROR :GL_INVALID_ENUM : glTexImage2D: target was GL_TEXTURE_RECTANGLE_ARB
Cc: dalecur...@chromium.org
I am able to repro this issue on http://www.zflministries.com/DataContent/HomePageWelcome.m4v. The chopping/halting is not serious, it only happen very occasionally. It is not repro on Safari though.
since this is not a regression, Dale, can you decide do we want to fix it?
I'm also seeing this behavior in win10 chrome 56.0.2924.87 with some videos for example this one:

http://screencast-o-matic.com/watch/cbVweGQ9eF

Playback will make excessive 206 calls and halts when there seems to be content already downloaded.  Works fine in Firefox, IE.

Components: -Internals>Media Internals>Media>Video
Status: Unconfirmed (was: Untriaged)
I can repro this issue by using link in c#10 on Chrome build 58.0.3026.3. 
the halting is mainly on video, audio is pretty smooth all the time.
As far as I can see, halting happens on 00:10, 01:55 timestamp
in Inspector=>Console, I don't see excessive calls. 
However, the same halting happens on Sarari, Firefox as well. I could't tell this is browser bug or a defect in video itself. 

ajgregory@, can you confirm if the halting you see is at the same timestamp or randomly happen?
I see buffering sporadically usually the first is around 0:16 at which point 100s for 206 requests start happening on both Windows and Mac which I just updated to 57.0.2987.98.  Sometimes it halts completely but most of the time it's buffering and the Network tab shows 100s of 206 requests as shown in this recording:  http://screencast-o-matic.com/watch/cbeQrr6xm6

In Safari and Firefox I don't see any buffering when playing back.
Labels: -M-58 M-59
Status: Untriaged (was: Unconfirmed)
Able to reproduce the issue using the url from comment # 10, on Mac 10.12.3, Ubuntu 14.04 and Win 10.
The video is getting halted at different time frames(0:15,0:18,0:19,0:22,...0:43 etc).
206 calls on the network tab of dev tools too observed.
This is a non-regression issue since 35.0.1849.0.

Halting is observed on http://sharpeyed.zflministries.com(@1:14) too.
Marking this as Non-Regression and untriaged to get addressed further.
 
Cc: -dalecur...@chromium.org
Owner: dalecur...@chromium.org
Status: Assigned (was: Untriaged)
Dale@, this bug is observed on Chrome. As per c#13, extensive call is observed too. However since this is also found on Safari and Firefox, I am not sure if this is actually a bug on video itself. can you take a look and resolve/assign appropriately?
Owner: hubbe@chromium.org
Presumably caching related.

Comment 16 by hubbe@chromium.org, Mar 30 2017

The HomePageWelcome.m4v video has a data track which is badly muxed.
I attached a picture shows time vs location of each data packet in the file.
The read line represents the unknown data stream, ideally all lines should stay together near the diagonal.

There has been some improvements in how chrome handles these kind of videos recently, chrome canary doesn't seem to have a problem playing this video.

The tomtom video (http://screencast-o-matic.com/watch/cbVweGQ9eF) is also badly muxed. But in this video, the audio and video track are just not even close to each other. Chrome canary may do slightly better with this video, but we would need to open two separate networks streams to actually handle this video well.
Currently the http cache layer doesn't work well if we open multiple connections to the same file, so we try to avoid doing that. Currently re-muxing is the only way to make this work well with chrome.

So; to summarize: re-muxing helps. The first video works well in chrome canary, the second doesn't and there is no quick way to fix it without remuxing.

mux.png
52.0 KB View Download
mux_tomtom.png
35.3 KB View Download
Thanks for taking the time to look into this.  I understand better muxing will help but why doesn't it wait for more content to download instead of making all the 206 calls?

Comment 18 by hubbe@chromium.org, Mar 31 2017

Because that's not how chrome works. What you're describing assumes that we will cache everything we download, which could be arbitrarily large. (and thus we cannot guarantee it) Chrome has a fixed-size (depending on bandwidth) preload buffer, and the disk cache is best-effort, so no guarantees there either.

I think there has been enough improvements to close this bug.

Status: Fixed (was: Assigned)
Hi.  Are you saying that the issue has been fixed in a version of Chrome that has yet to be released?  Thanks.

Comment 22 by hubbe@chromium.org, Jun 18 2017

It's been fixed or improved for many files, but not all.
The fixes should be in the next chrome release I think.

Sign in to add a comment