Сообщение Re[14]: как синхронизировать несколько видеостримов от 22.12.2022 12:24
Изменено 22.12.2022 12:26 paradok
Re[14]: как синхронизировать несколько видеостримов
Здравствуйте, Videoman, Вы писали:
V>Здравствуйте, paradok, Вы писали:
>>>> синхронном источнике (Live, Сеть) на приёме всегда будет либо перебор, либо недобор.
P>>вроде вот так не будет...
P>>пусть eсть буфера длинной N1..NK
P>>при поступлении очередного кадра из NX потока он добавляется в нужный буфер, а самый кадр старый удаляется из буфера...
P>>а главный объединитель по своим тактам просматривает все буфера и обирает картинку в главный буфер.
V>Кадр из сетевого буфера удаляется не по приходу нового, а при наступлении времени приемника, указанного в кадре, которое не совпадает с временем источника. В описанном вами подходе не добиться плавности, т.к. кадры по сети приходят в ужасно дёрганном режиме, относительно реального времени.
но если дрожание не ужасное, то будет норм.
более реалистична ситуация — 1) есть небольшой дрейф асов источника и приемника 2) и есть небольшое дрожание скорости поступления НО В СРЕДНЕМ = 0.
то есть канал БЕЗ НАКОПИТЕЛЬНОЙ ПАМЯТИ.
Тогда при умеренном дрожании — компромис — буффер заполняется и удаляется как я описал,
а главный поток читает НЕ САМЫЙ старый кадр из потоков, но старый,
потом ставит маркер что его можно удалять по приходу нового пакета и далее как выше описано.
при этом скажем 3 сигма дрожания К, а размер буфера скажем N >> K, тогда дрожание полностью погасится.
останется только дрей, но н решаетс как выше описано..
т.е. буфер будет в среднем постоянного размера, но у него будет дрожать время удаления начала и конца
а главный поток должен читать откуда-то из середин буфера.
V>Здравствуйте, paradok, Вы писали:
>>>> синхронном источнике (Live, Сеть) на приёме всегда будет либо перебор, либо недобор.
P>>вроде вот так не будет...
P>>пусть eсть буфера длинной N1..NK
P>>при поступлении очередного кадра из NX потока он добавляется в нужный буфер, а самый кадр старый удаляется из буфера...
P>>а главный объединитель по своим тактам просматривает все буфера и обирает картинку в главный буфер.
V>Кадр из сетевого буфера удаляется не по приходу нового, а при наступлении времени приемника, указанного в кадре, которое не совпадает с временем источника. В описанном вами подходе не добиться плавности, т.к. кадры по сети приходят в ужасно дёрганном режиме, относительно реального времени.
но если дрожание не ужасное, то будет норм.
более реалистична ситуация — 1) есть небольшой дрейф асов источника и приемника 2) и есть небольшое дрожание скорости поступления НО В СРЕДНЕМ = 0.
то есть канал БЕЗ НАКОПИТЕЛЬНОЙ ПАМЯТИ.
Тогда при умеренном дрожании — компромис — буффер заполняется и удаляется как я описал,
а главный поток читает НЕ САМЫЙ старый кадр из потоков, но старый,
потом ставит маркер что его можно удалять по приходу нового пакета и далее как выше описано.
при этом скажем 3 сигма дрожания К, а размер буфера скажем N >> K, тогда дрожание полностью погасится.
останется только дрей, но н решаетс как выше описано..
т.е. буфер будет в среднем постоянного размера, но у него будет дрожать время удаления начала и конца
а главный поток должен читать откуда-то из середин буфера.
Re[14]: как синхронизировать несколько видеостримов
Здравствуйте, Videoman, Вы писали:
V>Здравствуйте, paradok, Вы писали:
>>>> синхронном источнике (Live, Сеть) на приёме всегда будет либо перебор, либо недобор.
P>>вроде вот так не будет...
P>>пусть eсть буфера длинной N1..NK
P>>при поступлении очередного кадра из NX потока он добавляется в нужный буфер, а самый кадр старый удаляется из буфера...
P>>а главный объединитель по своим тактам просматривает все буфера и обирает картинку в главный буфер.
V>Кадр из сетевого буфера удаляется не по приходу нового, а при наступлении времени приемника, указанного в кадре, которое не совпадает с временем источника. В описанном вами подходе не добиться плавности, т.к. кадры по сети приходят в ужасно дёрганном режиме, относительно реального времени.
но если дрожание не ужасное, то будет норм.
более реалистична ситуация — 1) есть небольшой дрейф асов источника и приемника 2) и есть небольшое дрожание скорости поступления НО В СРЕДНЕМ = 0.
то есть канал БЕЗ НАКОПИТЕЛЬНОЙ ПАМЯТИ и не теряет кадры.
Тогда при умеренном дрожании — компромис — буффер заполняется и удаляется как я описал,
а главный поток читает НЕ САМЫЙ старый кадр из потоков, но старый,
потом ставит маркер что его можно удалять по приходу нового пакета и далее как выше описано.
при этом скажем 3 сигма дрожания К, а размер буфера скажем N >> K, тогда дрожание полностью погасится.
останется только дрей, но н решаетс как выше описано..
т.е. буфер будет в среднем постоянного размера, но у него будет дрожать время удаления начала и конца
а главный поток должен читать откуда-то из середин буфера.
V>Здравствуйте, paradok, Вы писали:
>>>> синхронном источнике (Live, Сеть) на приёме всегда будет либо перебор, либо недобор.
P>>вроде вот так не будет...
P>>пусть eсть буфера длинной N1..NK
P>>при поступлении очередного кадра из NX потока он добавляется в нужный буфер, а самый кадр старый удаляется из буфера...
P>>а главный объединитель по своим тактам просматривает все буфера и обирает картинку в главный буфер.
V>Кадр из сетевого буфера удаляется не по приходу нового, а при наступлении времени приемника, указанного в кадре, которое не совпадает с временем источника. В описанном вами подходе не добиться плавности, т.к. кадры по сети приходят в ужасно дёрганном режиме, относительно реального времени.
но если дрожание не ужасное, то будет норм.
более реалистична ситуация — 1) есть небольшой дрейф асов источника и приемника 2) и есть небольшое дрожание скорости поступления НО В СРЕДНЕМ = 0.
то есть канал БЕЗ НАКОПИТЕЛЬНОЙ ПАМЯТИ и не теряет кадры.
Тогда при умеренном дрожании — компромис — буффер заполняется и удаляется как я описал,
а главный поток читает НЕ САМЫЙ старый кадр из потоков, но старый,
потом ставит маркер что его можно удалять по приходу нового пакета и далее как выше описано.
при этом скажем 3 сигма дрожания К, а размер буфера скажем N >> K, тогда дрожание полностью погасится.
останется только дрей, но н решаетс как выше описано..
т.е. буфер будет в среднем постоянного размера, но у него будет дрожать время удаления начала и конца
а главный поток должен читать откуда-то из середин буфера.