client-sdk-android
client-sdk-android copied to clipboard
H.264 video output from pixel 4a freeze on PC's chrome browser after upgrade from 1.1.6 to 1.1.7 on pixel 4a
Suspect related to disable high profile. Encoder use wrong level For the 1.1.7 video captured by egress is use level 1.0 and 1.1.6 use 2.2 Please find the header info from ffprobe on the file egress from 1.1.7 and 1.1.6 with same encoding preset
ffprobe -show_streams output1.1.7.mp4 ffprobe version 4.4.2-0ubuntu0.22.04.1 Copyright (c) 2007-2021 the FFmpeg developers built with gcc 11 (Ubuntu 11.2.0-19ubuntu1) configuration: --prefix=/usr --extra-version=0ubuntu0.22.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared libavutil 56. 70.100 / 56. 70.100 libavcodec 58.134.100 / 58.134.100 libavformat 58. 76.100 / 58. 76.100 libavdevice 58. 13.100 / 58. 13.100 libavfilter 7.110.100 / 7.110.100 libswscale 5. 9.100 / 5. 9.100 libswresample 3. 9.100 / 3. 9.100 libpostproc 55. 9.100 / 55. 9.100 [h264 @ 0x55f6f91b1f00] left block unavailable for requested intra4x4 mode -1 [h264 @ 0x55f6f91b1f00] error while decoding MB 0 3 [h264 @ 0x55f6f91b1f00] concealing 373 DC, 373 AC, 373 MV errors in I frame Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output1.1.7.mp4 ': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf58.76.100 Duration: 00:28:59.72, start: 0.000000, bitrate: 586 kb/s Stream #0:0(und): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p, 426x240, 585 kb/s, 25 fps, 25 tbr, 1200k tbn, 2400k tbc (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] [STREAM] index=0 codec_name=h264 codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 profile=Baseline codec_type=video codec_tag_string=avc1 codec_tag=0x31637661 width=426 height=240 coded_width=426 coded_height=240 closed_captions=0 has_b_frames=0 sample_aspect_ratio=N/A display_aspect_ratio=N/A pix_fmt=yuv420p level=10 color_range=unknown color_space=unknown color_transfer=unknown color_primaries=unknown chroma_location=left field_order=unknown refs=1 is_avc=true nal_length_size=4 id=N/A r_frame_rate=25/1 avg_frame_rate=25/1
ffprobe -show_streams camera_1.1.6.mp4 ffprobe version 4.4.2-0ubuntu0.22.04.1 Copyright (c) 2007-2021 the FFmpeg developers built with gcc 11 (Ubuntu 11.2.0-19ubuntu1) configuration: --prefix=/usr --extra-version=0ubuntu0.22.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared libavutil 56. 70.100 / 56. 70.100 libavcodec 58.134.100 / 58.134.100 libavformat 58. 76.100 / 58. 76.100 libavdevice 58. 13.100 / 58. 13.100 libavfilter 7.110.100 / 7.110.100 libswscale 5. 9.100 / 5. 9.100 libswresample 3. 9.100 / 3. 9.100 libpostproc 55. 9.100 / 55. 9.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'camera_1.1.6.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf58.76.100 Duration: 00:04:38.76, start: 0.000000, bitrate: 1548 kb/s Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv), 426x240, 1585 kb/s, 25 fps, 25 tbr, 1200k tbn, 2400k tbc (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] [STREAM] index=0 codec_name=h264 codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 profile=High codec_type=video codec_tag_string=avc1 codec_tag=0x31637661 width=426 height=240 coded_width=426 coded_height=240 closed_captions=0 has_b_frames=0 sample_aspect_ratio=N/A display_aspect_ratio=N/A pix_fmt=yuv420p level=22 color_range=tv color_space=unknown color_transfer=unknown color_primaries=unknown chroma_location=left field_order=unknown refs=1 is_avc=true nal_length_size=4 id=N/A r_frame_rate=25/1 avg_frame_rate=25/1
And there are not packet lose during egress
Hmm, that's odd. AFAIK, we don't support high profile in the first place, which is why I disabled it.
Is the egressed video playable outside of chrome? And what happens when the issue occurs? Does it play for a while and then freeze or no video plays at all?
The egress video can't play outside chrome (try ffplay, vlc). Egress file can play couple video frames with macroblock and freeze. Similar to watch on chrome from webrtc source.
Hey, @khmak3, some users reported similar issues when using webrtc 104.5112.07 on an older version of livekit. Can you see if downgrading to 104.5112.05 works?
Example of excluding and manually depending on webrtc versions can be found here: #204
If you're on 1.1.9 or above, you'll need to exclude io.github.webrtc-sdk instead.
Use old version of webrtc seems fix this issue