1 (2022.08.16 10:32:47 отредактировано Micole)

Тема: Сжатие картинки по вертикали, странные SAR и DAR

Здравствуйте. Извините, если неправильно выбрал раздел. Проблема такая: при транскодировании иногда картинка сжимается по вертикали (или растягивается по горизонтали), в ходе экспериментов я уже изрядно запутался, пытаясь определить, в чём дело и когда это срабатывает. Когда отключил опцию "Дополнение цветом до размера кадра" некоторые видео стали отображаться корректно, но некоторые всё равно сжимаются. Так же на поведение влияет формат кодирования, например, MPEG (DVD) сжимает изображение немного, а MPEGTS - в узкую полоску.

Вот пример, исходное видео:

+ открыть спойлер
Input #0, matroska,webm, from '... video.mkv':
  Metadata:
    ENCODER         : Lavf58.45.100
  Duration: 00:02:20.55, start: 0.000000, bitrate: 2115 kb/s
    Stream #0:0(eng): Video: vp9 (Profile 0), yuv420p(tv, bt709), 1920x1080, SAR 1:1 DAR 16:9, 59.94 fps, 59.94 tbr, 1k tbn, 1k tbc (default)
    Metadata:
      DURATION        : 00:02:20.490000000
    Stream #0:1(eng): Audio: aac (LC), 44100 Hz, stereo, fltp (default)
    Metadata:
      HANDLER_NAME    : ISO Media file produced by Google Inc.
      DURATION        : 00:02:20.550000000

Транскодированное:

+ открыть спойлер
Input #0, mpegts, from '... AppData\Local\Home Media Server\HMS\Temp\fe14f76cd32d5cc6123114d49b0b219d.ts':
  Duration: 00:02:20.51, start: 1.400000, bitrate: 30957 kb/s
  Program 1
    Metadata:
      service_name    : Service01
      service_provider: FFmpeg
    Stream #0:0[0x100]: Video: h264 (Constrained Baseline) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 81:16 DAR 9:1], 59.94 fps, 59.94 tbr, 90k tbn, 119.88 tbc
    Stream #0:1[0x101](eng): Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 196 kb/s

При извлечении кадра с помощью FFmpeg получаю идентичные картинки 1920x1080 пикселей из обоих видео, но при просмотре на ТВ и в VLC на компьютере у транскодированного видео картинка сплюснута. Если сделать снимок средствами VLC, он выдаёт картинку 9720x1080 пикселей, то есть дико растянутую вширь. Так же она выглядит на телевизоре. При транскодировании в MPEG (DVD) искажение меньше, но тоже присутствует.

Аппаратный плеер, на котором смотрю: LG BP620, но проблема видна и в VLC, если открыть в нём временный файл. Настройки кадра в HMS у меня стоят 1920x1080, 16:9, "Изменять размер, если оригинал больше", профиль "Фильмы (основной)". Я пробовал экспериментировать с этими настройками, но безуспешно.

А вот, что происходит всегда, даже при тестовом транскодировании в HmsPlay и даже на тех видео, которые не искажаются визуально: параметр DAR (Display Aspect Ratio) всегда устанавливается в 9:1, а SAR (Sample Aspect Ratio), видимо, подбирается такой, чтобы сохранить соотношение сторон, получается, например, так:
Исходное видео: 1920x816 SAR 1:1 DAR 40:17 (соответствует соотношению 1920x816)
Транскодированное: 1920x816 SAR 153:40 DAR 9:1
Это сочетание (SAR 153:40 и DAR 9:1) даёт правильно соотношение сторон (2.35), если я правильно понимаю, но DAR-то неправильный. В этом и проблема, видимо? Мне не удалось добиться другого значения никакими настройками.