Scirra / Construct-bugs

Public bug report submissions for Construct 3 and Construct Animate. Please read the guidelines then click the 'Issues' tab to get started.
https://www.construct.net
107 stars 83 forks source link

VideoRecorder Start User Media Recording crashes on Android Chrome #8108

Closed vicbarbosa closed 4 months ago

vicbarbosa commented 4 months ago

Problem description

When calling VideoRecorder.StartUserMediaRecording(Auto, Auto, Auto, 2500) Android Chrome will crash with no error messages in the console.

Attach a .c3p

This happens even in the official construct video recorder feature example construct-official-camera-example.zip

Steps to reproduce

  1. Start remote preview
  2. Open on any android phone with Chrome
  3. Allow camera access
  4. Start recording

Observed result

Chrome will crash after a few moments with no console error messages

Expected result

Should not crash

More details

Seems like changing the Action Parameter Audio to Opus solves the issue for Android Chrome only, but this change will start crashing on Android Firefox

Crashes on Android Chrome only

It works on Windows, iPhone/Safari, Android/Firefox, Android/Webview (Samsung)

I don't know the exact C3 release that broke it. But we started receiving complaints recently so it must be new

System details

View details Platform information Product: Construct 3 r397 (stable) Browser: Chrome 126.0.6478.127 Browser engine: Chromium Context: browser Operating system: Windows 10 Device type: desktop Device pixel ratio: 1 Logical CPU cores: 16 Approx. device memory: 8 GB User agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Language setting: en-US Local storage Storage quota (approx): 586 gb Storage usage (approx): 119 mb (0%) Persistant storage: No Browser support notes This list contains missing features that are not required, but could improve performance or user experience if supported. Nothing is missing. Everything is OK! WebGL information Version string: WebGL 2.0 (OpenGL ES 3.0 Chromium) Numeric version: 2 Supports NPOT textures: yes Supports GPU profiling: no Supports highp precision: yes Vendor: Google Inc. (NVIDIA) Renderer: ANGLE (NVIDIA, NVIDIA GeForce RTX 2070 SUPER (0x00001E84) Direct3D11 vs_5_0 ps_5_0, D3D11) Major performance caveat: no Maximum texture size: 16384 Point size range: 1 to 1024 Extensions: EXT_clip_control EXT_color_buffer_float EXT_color_buffer_half_float EXT_conservative_depth EXT_depth_clamp EXT_disjoint_timer_query_webgl2 EXT_float_blend EXT_polygon_offset_clamp EXT_render_snorm EXT_texture_compression_bptc EXT_texture_compression_rgtc EXT_texture_filter_anisotropic EXT_texture_mirror_clamp_to_edge EXT_texture_norm16 KHR_parallel_shader_compile NV_shader_noperspective_interpolation OES_draw_buffers_indexed OES_sample_variables OES_shader_multisample_interpolation OES_texture_float_linear OVR_multiview2 WEBGL_blend_func_extended WEBGL_clip_cull_distance WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_lose_context WEBGL_multi_draw WEBGL_polygon_mode WEBGL_provoking_vertex WEBGL_stencil_texturing Audio information System sample rate: 48000 Hz Output channels: 2 Output interpretation: speakers Supported decode formats: WebM Opus (audio/webm;codecs=opus) WebM Vorbis (audio/webm;codecs=vorbis) MPEG-4 Opus (audio/mp4;codecs=opus) MPEG-4 AAC (audio/mp4;codecs=mp4a.40.2) MP3 (audio/mpeg) FLAC (audio/flac) PCM WAV (audio/wav;codecs=1) Supported encode formats: WebM Opus (audio/webm;codecs=opus) MPEG-4 Opus (audio/mp4;codecs=opus) MPEG-4 AAC (audio/mp4;codecs=mp4a.40.2) Video information Supported decode formats: WebM AV1 (video/webm;codecs=av01.0.00M.08) WebM VP9 (video/webm;codecs=vp9) WebM VP8 (video/webm;codecs=vp8) MPEG-4 AV1 (video/mp4;codecs=av01.0.00M.08) MPEG-4 H.265 (video/mp4;codecs=hev1.1.2.L93.B0) MPEG-4 H.264 (video/mp4;codecs=avc1.420034) Supported encode formats: WebM AV1 (video/webm;codecs=av01.0.00M.08) WebM VP9 (video/webm;codecs=vp9) WebM VP8 (video/webm;codecs=vp8) WebM H.264 (video/webm;codecs=avc1.420034) MPEG-4 VP9 (video/mp4;codecs=vp9) MPEG-4 H.264 (video/mp4;codecs=avc1.420034)
vicbarbosa commented 4 months ago

@letnrodrigues found some additional information about this issue Seems like chromium dropped support for vp8 (https://issues.chromium.org/issues/352144909) And your 'Auto' code still considers vp8 as an option here

image

AshleyScirra commented 4 months ago

It's a tab crash which means Chrome is crashing, not Construct. It seems to only happen with the new MP4 H.264/AAC encoding support - it still works if you manually specify WebM VP9/Opus. I filed the issue with Google here: https://issues.chromium.org/issues/353167439 Closing this issue as it will be followed up there.

letnrodrigues commented 2 months ago

Any news on this? The access to view the issue on Google is denied.

AshleyScirra commented 2 months ago

I have access to the issue so asked if there's any news.

AshleyScirra commented 2 months ago

Apparently it is fixed in Chrome v128+. Currently Chrome Android is v127 for me which still reproduces the issue, but Chrome beta is v129 where it works, so I think it just needs a bit of time for the fix to come through to the stable channel.