Приветствую! Надеюсь на дельный совет. Имеется медиаплеер на mips GNU/Linux 2.6.22.19-19-4 . Желается смотреть потоковое видео, будь то iptv(предварительно преобразованное udpxy в http), mms,rtsp,http. Имеющееся решение (также неофициальное) работает неудовлетворительно(различное время запуска,срывы, неподдерживаемые форматы).
Как вариант рассматривается использование msdl (Media Stream DownLoader) который без особых проблем позволяет скачать в файл или вывести в stdout любой подобный поток. И затем этот файл штатно можно воспроизвести медиаплеером (при этом проиграть можно почти сразу после начала захвата потока что есть +).
Но подобная схема также нехороша тем что нужно писать на винт такой файл потока.
Следует сказать что движок воспроизводящий естественно скрыт, но работает видимо с использованием DLNA фишек, т.е. запуск файла на воспроизведение с командной строки можно сделать навороченно так:
wget -q --post-data="<?xml version="1.0" encoding="utf-8"?><s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><u:SetAVTransportURI xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID><CurrentURI>file:///path/to/your/file.avi</CurrentURI><CurrentURIMetaData /></u:SetAVTransportURI></s:Body></s:Envelope>" localhost:port/MediaRenderer_AVTransport/control --header='SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#SetAVTransportURI"'
Так вот главный вопрос: как обойтись без записи на винт имея при этом воспроизводящийся поток.
В голову приходят варианты:
1) воспользоваться выводом msdl в stdout а далее както заворачивать в php.
2) пользоваться подавлениями типа >/dev/null
3) писать во временный файл в памяти (довольно ограниченной, но размером достаточным для нормальной буферизации вполне можно позволить)
4) соорудить локальный прокси для потока типа http://localhost/file.avi в который будет шуровать поток (но на винт не сохраняться) и этот линк скармливать медиаплееру
5) ещё варианты..
Имеются сложности в понимании самого термина поток - как так можно воспроизводить нечто неопределенной длины и никуда не писать. Или представляется нечто стекоподобное конечной длины (для варианта с памятью) но изменяемым потокосодержимым.
Реализовывать можно на php shell или уж чем получится. Найдутся ли соображения как упорядочить имеющуюся кашу? :) Спасибо.