TelegramMessenger / Telegram-iOS

Telegram-iOS
6.37k stars 1.67k forks source link

Blurred video on iPad 4 #327

Open VadVergasov opened 4 years ago

VadVergasov commented 4 years ago

Checklist

Description

On two different iPad 4, I have same behavior with some videos. Some of them are blurred and some not. But if the video is blurred on one of them it will also be blurred on another. But on the same version of Telegram on iPhone X, these videos are playing as usual. At the start, it was looking like #10 but it isn't. For now, I can't find dependence if this video playable or not. I can try to look at FFmpeg and, maybe, I'll found something.

Expected Behavior

All videos should be playing as usual.

Actual Behavior

Some of them can be blurred.

Steps to Reproduce

  1. Some iPad 4.
  2. Some Apple ID.
  3. Installing Telegram.
  4. Login.
  5. Trying to watch the video.

Environment

Device: iPad 4 32Gb and 128Gb

iOS version: 10.3.3

App version: 6.2.1

VadVergasov commented 4 years ago

Ok, I think I found the issue: video, which can be played is encoded in h264. FFmpeg output:

ffmpeg version git-2019-11-26-59d264b Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 9.2.1 (GCC) 20191125
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
  libavutil      56. 36.100 / 56. 36.100
  libavcodec     58. 62.100 / 58. 62.100
  libavformat    58. 35.100 / 58. 35.100
  libavdevice    58.  9.101 / 58.  9.101
  libavfilter     7. 67.100 /  7. 67.100
  libswscale      5.  6.100 /  5.  6.100
  libswresample   3.  6.100 /  3.  6.100
  libpostproc    55.  6.100 / 55.  6.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '.\playable.MP4':
  Metadata:
    major_brand     : mp42
    minor_version   : 1
    compatible_brands: isommp41mp42
    creation_time   : 2020-07-21T17:32:04.000000Z
  Duration: 00:00:05.00, start: 0.000000, bitrate: 4326 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1072, 4242 kb/s, SAR 1:1 DAR 120:67, 29.01 fps, 29 tbr, 600 tbn, 1200 tbc (default)
    Metadata:
      creation_time   : 2020-07-21T17:32:04.000000Z
      handler_name    : Core Media Video
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 75 kb/s (default)
    Metadata:
      creation_time   : 2020-07-21T17:32:04.000000Z
      handler_name    : Core Media Audio

And videos wich are blurred in HEVC:

ffmpeg version git-2019-11-26-59d264b Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 9.2.1 (GCC) 20191125
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
  libavutil      56. 36.100 / 56. 36.100
  libavcodec     58. 62.100 / 58. 62.100
  libavformat    58. 35.100 / 58. 35.100
  libavdevice    58.  9.101 / 58.  9.101
  libavfilter     7. 67.100 /  7. 67.100
  libswscale      5.  6.100 /  5.  6.100
  libswresample   3.  6.100 /  3.  6.100
  libpostproc    55.  6.100 / 55.  6.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '.\playable.MP4':
  Metadata:
    major_brand     : mp42
    minor_version   : 1
    compatible_brands: isommp41mp42
    creation_time   : 2020-07-21T17:32:04.000000Z
  Duration: 00:00:05.00, start: 0.000000, bitrate: 4326 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1072, 4242 kb/s, SAR 1:1 DAR 120:67, 29.01 fps, 29 tbr, 600 tbn, 1200 tbc (default)
    Metadata:
      creation_time   : 2020-07-21T17:32:04.000000Z
      handler_name    : Core Media Video
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 75 kb/s (default)
    Metadata:
      creation_time   : 2020-07-21T17:32:04.000000Z
      handler_name    : Core Media Audio

And as far as I know: HEVC is supported by iOS 11, but it is strange, that Telegram supports iOS 10 and does not have some fixes for that. And it would be a shame to lose telegrams on old devices.

unix-junkie commented 3 years ago

I’m having a similar issue with iPhone SE/iOS 13 (receiver) and Xiaomi Redmi Note 4X (sender).

Before I upgraded iPhone SE to iOS 13, videos sent from Android were playing just fine.

Looks like some regression introduced with iOS 13.