Closed OmlineEditor closed 1 year ago
Сама программа ничего с потоками не делает, это может только камера. Значит, URL указан неверно. Например, мои камеры по адресу Channels/102/101 покажут канал низкого разрешения (см. #48)
Например, мои камеры по адресу Channels/102/101 покажут канал низкого разрешения
Все верно это второй канал у вас, а не первый, поэтому и низкого качества. нужно по адресу Channels/101 смотреть. У меня похожая проблема была пока не обрезала url
Прошу посмотреть что делает плагин VLC внутри программы т.е. если переключиться на 2й канал там даже кирпичей не видно, порсто коричневое месиво. Программа переключает каналы, 1й и 2й поток отличаются, но 1й почему-то не полный и пережатый.
Чудес не бывает. Проверьте, пожалуйста, по логам, по какому URL подключается камера. И что будет, если убрать каналы (оставить один URL).
что будет, если убрать каналы (оставить один URL).
Тоже самое, канал пережат и изображение не оригинльное. еще я заметила что пропорции изображения не верные в портретной ориентации телефона и в пейзажной, при повороте телефона меняется качество видео.
Судя по логам программа явно пережимает видео и уменьшает разрешение из-за какой-то ошибки Исходное видео: 3840x2160, пережатое: 2432x1088 Ошибка: libvlc window: request 1 not implemented allocator 3.x is not supported DequeueBuffer: dequeueBuffer failed NdkMediaCodec: sf error code: -38
2432x1088 это, случайно, не разрешение вашего устройства? Как вы вообще определили разрешение видео? Как воспроизводится эта камера этой же программой на других устройствах?
P.S. Насколько я вижу, 3840 / 2160 < 2432 / 1088. Могу предположить, что причина размытия именно в этом. Предлагаю проверить эту гипотезу.
2432x1088 это, случайно, не разрешение вашего устройства?
2432x1088 - на разрешение экрна ПОЧТИ похоже, оно немного отличается у меня 2340 x 1080.
Как вы вообще определили разрешение видео?
по логам что выдала программа, возможно ошибаюсь.
Как воспроизводится эта камера этой же программой на других устройствах?
намного лучше эта камера показывает на других устройствах, и если открыть в VLC на этом же устройстве и растянуть тогда касчество лучше чем в вашей программе.
вывод: сжатие есть и видео не оригинал, причина где-то внутри программы.
намного лучше эта камера показывает на других устройствах
Можете выразиться точнее - на других устройствах в этой же программе?
Предлагаю простой эксперимент:
Если качество в норме и размеры фреймов совпали - ура, проблема концептуально решена, фиксируем размер фрейма на одиночном экране и выкатываем обновление. Если нет - всё плохо, разбираемся дальше.
P.S. В общем случае размытие не означает сжатие.
Можете выразиться точнее - на других устройствах в этой же программе?
Тестирую, и вот что вышло: Ваша программа на телефоне - первый канал явно сжимает и это не оригинал Ваша программа на старом планшете - неработает https://github.com/vladpen/cams/issues/51 VLC на телефоне - первый канал без пережатия, видео оригинал VLC на компьютере - первый канал без пережатия, видео оригинал
Предлагаю простой эксперимент:
Его итоги: В группе камера на 8 Mp 3840x2160 показывает точно также как и без группы - видео пережато и кирпичи видно плохо. Камера в портретной ориентации показывает хуже чем в пейзажной ориентации, кирпичи видно по разному - в пейзажной немного лучше, но все равно не оригинал т.к. пережимает исходник всегда.
P.S. Пережатие потока в камере при недостаточной ширине канала выключено принудительно, т.е. камера отдает оригинал всегда.
Спасибо, понятно. Это про 4к камеру. А с обычными full HD проблем не было?
А с обычными full HD проблем не было?
Точно сказать не могу, у меня нет таких камер. Тестировала на другой камере Full HD что временно дали доступ, там кажется все норм.
Вердикт такой: на экране 2340x1080 увидеть 4к нельзя. Точнее, увеличивать картинку можно 3-мя способами:
Сейчас реализован вариант 1, т.к. 2 и 3 требуют вмешательства в libVLC и, соответственно, приводят к снижению отзывчивости интерфейса и увеличению потребления ресурсов процессора и памяти.
То есть в теории, если масштабировать сам поток, добиться лучшего качества увеличенного 4К на экране 2К можно, но платить за это будут пользователи обычных камер. Смысла в этом я не вижу и предлагаю для 4К просто рекомендовать использование устройств с высокой плотностью пикселей.
Вот допустим я старенькая бабушка, у меня экран 720x480 но камера 4к. Ко мне пришли люди или пенсию принести или жулики из СОБЕСа. Я бы могла увеличить картинку и посмотреть, как выглядят лица, но в место этого у меня 4к камера с 8 мегапикселями, на которую я потратила последнюю пенсию превратилась в камеру с разрешением 0,3 Мегапикселя, это потеря примерно в 26 раз. Вот тут явно такого быть не должно. Если делать, то делать хорошо, и камера должна масштабироваться как положено. Если смотреть далеко в будущее, то все пенсионеры будут иметь телефоны, это щас современная молодежь и у всех будут камеры с большим разрешением, этого сегодня 8 Мегапикселей много, а через пару лет будет и 32 Мегапикселя. Экраны телефонов явно не будут иметь такое разрешение. Терять качество картинки малоприятное занятие. И вмешиваться в libVLC вам не нужно. Опишите проблему разработчику библиотеки и скажите, что есть проблема и ее нужно исправить, подождем, когда поправят и вам почти ничего не нужно делать.
Кстати тикет откройте чтобы не забыть о проблеме.
Боюсь, пока старенькой бабушке придется страдать. Вариант №2 не выполним - андроид не справляется с увеличенной поверхностью даже 2К (хотя этот метод, действительно, даёт четкую картинку на любом экране), а для №3 в API нет методов перемещения. Очень жаль, конечно. Возможно, поможет crop_window, но это появится только в 4.0.
Предлагаю подождать.
При просмотре первого канала качество видео явно не соответствует оригиналу. Вы зачем видео пережимаете? Прошу показывать оригинал без пережатия.
P.S. Я не путаю первый и второй канал. второй канал еще хуже, так что ошибки быть не может.