stebasha Posted October 10, 2012 Всем привет стоит такая задача. Имеем примерно 150-200 телеканалов в формате Mpeg2 SD битрейт порядка 3-5 мб/с мультикаст. Необходимо это все преобразовать в Http чтобы можно было пользователям просматривать например на сайтах, телефонах (андроид и айфоны). Варианты типо переконвертить в влс не пойдут, нужно железное стабильное решение, желательно чтобы могло делать динамический битрейт, в зависимости от канала пользователя он мог регулировать качество, чтобы картинка была всегда, например путем деления канала на 3 полосы 3-5 мб/с, 1-2 мб/с и 256-1 мб/с. Подскажите какие могут быть решения, слышал вроде у циски есть какие то мощные железки которые такое делают... жду предложений Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
maxlapshin Posted October 10, 2012 Давайте по порядку. Что бы смотреть видео на айфоне/андроиде, надо что бы оно: 1) желательно было маленького битрейта, до 700 кб/с 2) было в h264/aac 3) см пункт 2 Никакой mpeg2 на мобилы и на сайты не пойдет. Теперь насчёт HTTP. Нет никакого «видео по HTTP», равно как и «видео по UDP». Есть HTTP-MPEGTS, HLS, HDS, http download, endless flv. Что бы смотреть на айфоне (и на новых андроидах), нужен HLS. Для него нужен h264/aac. Что бы из mpeg2 получить h264/aac, надо транскодировать. Можно купить дорогущее «аппаратное» говно, а можно поставить VLC. Абсолютно все коммерческие предложения дешевле $20000 за канал — никчемное жалкое поделие по сравнению с libx264. Я не щупал железо, которое отправляет поток на спутник, не удивлюсь если и оно отдает проприетарным запахом, но повторю: не видел. Всё что видел, включая $20 000 за канал — это фуфло. Полное и безоговорочное. Вы получаете жалкий селерон с виндой (!!!!!) на котором стоит какая-то невнятная, неуправляемая, зависающая софтинка. Иногда бывает вотнкута Ospree карта захвата что бы поэнтерпрайзнее выглядело, но это всё виснет и глючит. Ещё есть такой миф, что существуют аппаратные решения по кодированию mpeg2 -> h264. Это фуфло. У меня на столе валяется ARM, который умеет это делать, на выходе картинка такая, что хочется плакать. Тут важно понять такую деталь: h264 – это очень комплексный кодек, в нём куча разных примочек для того, что бы сберечь трафик и качество. Самый простой h264 энкодер берет сырой YUV, режет его на макроблоки, кладет и получает небольшое увеличение объёма. Но это будет совершенно валидный H264. h264 энкодер поумнее берет эти макроблоки, строит на них хитрую функцию квантования и отрезает данные до тех пор, пока не впихнет в требуемый constant bitrate. Получается то, что видно на дешевой китайской камере. Дальше есть ещё 99% фич, которые нет смысла перечислять, но их все объединяет одно: для того, что бы успеть в риалтайме закодировать хорошо и компактно, нужен очень, очень мощный процессор с одним-двумя ядрами. 1000 ядер не помогут ничем. Самый лучший аппаратный h264 энкодер — это разогнанный Core i7 где-нибудь до 4 ГГц. Просто у него есть шансы отпаять собственный слот. Резюме. Ставьте 10-20 компьютеров с Core i7, транскодируйте из mpeg2 в h264, дальше берите erlyvideo или wowza для того, что бы превратить результат в HLS и радуйте пользователей. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ivan_83 Posted October 10, 2012 В новых интеловых процах с графикой вроде добавили возможность аппаратно процом энкодить. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
maxlapshin Posted October 10, 2012 Увы, но это больше приманка, чем реальная помощь. Тем более, что реально работающего с этой фичей софта очень немного. При кодировании надо выдержать баланс между: 1) задержкой 2) количеством тактов 3) выходным битрейтом 4) выходным качеством Когда кодируют фильмы, то плюют на 1 и 2, выставляют желаемый 3 ради максимального 4. Когда кодируют эфир с помощью libx264, то получается что делают умеренную 1 (4-10 секунд), фиксированный 2 (лишь бы успеть в риалтайм), желаемый 3 и какой получится (обычно неплохой) 4. Когда кодируют аппаратно, то получается минимальная 1, фиксированная (и неважно какая) 2, гарантированный 3 и гарантированно неприемлемое 4. Т.е. для охранной видеокамеры ок, но для эфирного канала — не ок. Т.е. ещё раз: все аппаратные решения по сравнению с VLC уменьшают количество тактов и гарантированно снижают качество при том же выходном битрейте. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
stebasha Posted October 12, 2012 Давайте по порядку. Что бы смотреть видео на айфоне/андроиде, надо что бы оно: 1) желательно было маленького битрейта, до 700 кб/с 2) было в h264/aac 3) см пункт 2 Никакой mpeg2 на мобилы и на сайты не пойдет. Теперь насчёт HTTP. Нет никакого «видео по HTTP», равно как и «видео по UDP». Есть HTTP-MPEGTS, HLS, HDS, http download, endless flv. Что бы смотреть на айфоне (и на новых андроидах), нужен HLS. Для него нужен h264/aac. Что бы из mpeg2 получить h264/aac, надо транскодировать. Можно купить дорогущее «аппаратное» говно, а можно поставить VLC. Абсолютно все коммерческие предложения дешевле $20000 за канал — никчемное жалкое поделие по сравнению с libx264. Я не щупал железо, которое отправляет поток на спутник, не удивлюсь если и оно отдает проприетарным запахом, но повторю: не видел. Всё что видел, включая $20 000 за канал — это фуфло. Полное и безоговорочное. Вы получаете жалкий селерон с виндой (!!!!!) на котором стоит какая-то невнятная, неуправляемая, зависающая софтинка. Иногда бывает вотнкута Ospree карта захвата что бы поэнтерпрайзнее выглядело, но это всё виснет и глючит. Ещё есть такой миф, что существуют аппаратные решения по кодированию mpeg2 -> h264. Это фуфло. У меня на столе валяется ARM, который умеет это делать, на выходе картинка такая, что хочется плакать. Тут важно понять такую деталь: h264 – это очень комплексный кодек, в нём куча разных примочек для того, что бы сберечь трафик и качество. Самый простой h264 энкодер берет сырой YUV, режет его на макроблоки, кладет и получает небольшое увеличение объёма. Но это будет совершенно валидный H264. h264 энкодер поумнее берет эти макроблоки, строит на них хитрую функцию квантования и отрезает данные до тех пор, пока не впихнет в требуемый constant bitrate. Получается то, что видно на дешевой китайской камере. Дальше есть ещё 99% фич, которые нет смысла перечислять, но их все объединяет одно: для того, что бы успеть в риалтайме закодировать хорошо и компактно, нужен очень, очень мощный процессор с одним-двумя ядрами. 1000 ядер не помогут ничем. Самый лучший аппаратный h264 энкодер — это разогнанный Core i7 где-нибудь до 4 ГГц. Просто у него есть шансы отпаять собственный слот. Резюме. Ставьте 10-20 компьютеров с Core i7, транскодируйте из mpeg2 в h264, дальше берите erlyvideo или wowza для того, что бы превратить результат в HLS и радуйте пользователей. Не согласен на айфоне щас поставил на freebsd ретранслятор, который действует как прокси, на вход отдаю мультикаст и на айфоны качаю плейлист и нормально смотрю без проблем на айфоне видео, на андройде тоже (через вай фай). Возможно знаю вроде можно на вовзу подать Mpeg2 ts и сделать из этого потоки как для айфона так и для других устройств с динамической полосой и качеством, вот на сколько правда это или нет ? earlyvideo по моему мнению кривая очень прога Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
maxlapshin Posted October 12, 2012 Не согласен на айфоне щас поставил на freebsd ретранслятор, который действует как прокси, на вход отдаю мультикаст и на айфоны качаю плейлист и нормально смотрю без проблем на айфоне видео, на андройде тоже (через вай фай). Мне было бы гораздо проще понять вашу мысль и ответить вам, если бы вы излагали её связно. Хотя бы расставили знаки препинания. Я так понял, что всё таки речь идет о том, что вы не на айфоне поставили на freebsd ретранслятор, а поставили на сервере под управлением FreeBSD какую-то программу, которая принимает поток с неизвестным вам кодеком и чем-то показывает это на айфоне, возможно даже не через браузер, а отдельной программой. Прокомментировать это очень сложно, потому что непонятно, какие потоки к вам приходят (подсказка: «мультикаст» — это способ передачи потока, а не его содержимое), и непонятно, чем именно на айфоне вы просматриваете видео. Если отдельной программой, то это не очень полезно для обсуждаемой задачи. Опять же, вы совсем не подумали о судьбе каналов и качестве сервиса при попытке отдать MPEG2 видео в интернет. Возможно знаю вроде можно на вовзу подать Mpeg2 ts и сделать из этого потоки как для айфона так и для других устройств с динамической полосой и качеством, вот на сколько правда это или нет ? earlyvideo по моему мнению кривая очень прога Я так понимаю, вы основываетесь на том, что где-то что-то слышали, но не пробовали, иначе вы бы знали точно: правда это или нет. Про erlyvideo, надо полагать, у вас такого же характера знания. Знакомый админ рассказал =) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
iMPoSsibLe_iT Posted October 12, 2012 На самом деле для домашнего использования вполне себе подходит udpxy + iptv player из play market'а (у меня лично Galaxy S3 c Android) Показывает SD каналы вполне сносно. Единственное требование ширина и качество канала. (О 3G и прочих можно сразу забыть) Разумеется для массового внедрения такое решение врятли подойдёт ввиду особенностей udpxy. Но для десятка-двух пользователей почему бы и нет. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
maxlapshin Posted October 13, 2012 «пользователям просматривать например на сайтах» Вряд ли автор темы захочет оплачивать разработку своего решения и пытаться объяснить пользователям, что они должны принять на мобилу 4 мегабита. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
zhenya` Posted October 13, 2012 транскодинг вовзой тоже не дешевое удовольствие.. кстати у вовзы есть поддержка спидстепа из последних коропроцов и кодинг на cuda правда все это под х64 виндой. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
maxlapshin Posted October 14, 2012 Я про это уже писал. Cuda, аппаратная поддержка от Intel — это всё бирюльки и свистульки для того, что бы порадовать неискушенного покупателя. Вовза пошла то ли к MainConcept, то ли к кому-то ещё и купила у них лицензию на кодек, к которой заодно впарили ненужную и мешающуюся поддержку куды. Всё от того, что libx264 GPL, а договориться по нормальной цене не получилось. Либо просто лениво, потому как парни хотят не так уж и много: от $10K за не-GPL версию libx264. Соответственно в вовзе сейчас встроен средненький кодек, радующий анонимов и продавцов вовзы. VLC всё равно выдаст лучше качество чем любое платное ПО. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
stebasha Posted October 15, 2012 Не согласен на айфоне щас поставил на freebsd ретранслятор, который действует как прокси, на вход отдаю мультикаст и на айфоны качаю плейлист и нормально смотрю без проблем на айфоне видео, на андройде тоже (через вай фай). Мне было бы гораздо проще понять вашу мысль и ответить вам, если бы вы излагали её связно. Хотя бы расставили знаки препинания. Я так понял, что всё таки речь идет о том, что вы не на айфоне поставили на freebsd ретранслятор, а поставили на сервере под управлением FreeBSD какую-то программу, которая принимает поток с неизвестным вам кодеком и чем-то показывает это на айфоне, возможно даже не через браузер, а отдельной программой. Прокомментировать это очень сложно, потому что непонятно, какие потоки к вам приходят (подсказка: «мультикаст» — это способ передачи потока, а не его содержимое), и непонятно, чем именно на айфоне вы просматриваете видео. Если отдельной программой, то это не очень полезно для обсуждаемой задачи. Опять же, вы совсем не подумали о судьбе каналов и качестве сервиса при попытке отдать MPEG2 видео в интернет. Возможно знаю вроде можно на вовзу подать Mpeg2 ts и сделать из этого потоки как для айфона так и для других устройств с динамической полосой и качеством, вот на сколько правда это или нет ? earlyvideo по моему мнению кривая очень прога Я так понимаю, вы основываетесь на том, что где-то что-то слышали, но не пробовали, иначе вы бы знали точно: правда это или нет. Про erlyvideo, надо полагать, у вас такого же характера знания. Знакомый админ рассказал =) И так имеем следующие потоки MPeg2-TS подаются на сервер мультикастом где стоит FreeBsd и софт который проксирует это в Http трафик, создаем плэйлист на мобильном телефоне и смотрим, но есть проблемы с шириной канала как надежно все это делать и транскодировать или трансрейтить. Я про это уже писал. Cuda, аппаратная поддержка от Intel — это всё бирюльки и свистульки для того, что бы порадовать неискушенного покупателя. Вовза пошла то ли к MainConcept, то ли к кому-то ещё и купила у них лицензию на кодек, к которой заодно впарили ненужную и мешающуюся поддержку куды. Всё от того, что libx264 GPL, а договориться по нормальной цене не получилось. Либо просто лениво, потому как парни хотят не так уж и много: от $10K за не-GPL версию libx264. Соответственно в вовзе сейчас встроен средненький кодек, радующий анонимов и продавцов вовзы. VLC всё равно выдаст лучше качество чем любое платное ПО. Но VLC ведь довольно кривое решение которое по памяти течет всегда и нет ни какой стабильности. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
maxlapshin Posted October 15, 2012 Но VLC ведь довольно кривое решение которое по памяти течет всегда и нет ни какой стабильности. Это очень громкое заявление. У VLC действительно бывают проблемы, когда шумный канал, или когда вместо того, что бы поставить надежную PCI плату захвата, начинают городить огород из «промышленных» железок и сложных конструкций. Однако, если разобраться с потерями от спутника до VLC, то в целом он может работать неделями без проблем. Ну и хорошо бы четко знать, какие конкретно версии работают, потому что регрессии бывают. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
dsk Posted October 15, 2012 Две недели назад запустил VLC вещать вебкамеру в HLS, пока жужжит и не падает... Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...