Тестирую udpxy в составе последней прошивки (8,22). Часто бывает ситуация, что смотришь какой-нибудь канал (используется связка TVercity и DSM320RD) и где-то минут через 20 наблюдаем стоп-кадр, который уже не оживает
При этом в логе роутера обнаруживается строчка вида:
Mar 10 22:21:59 udpxy[176]: write_buf - write: Connection reset by peer
После получения стоп-кадра можно переключиться на следующий канал - так же будет работать. В случае, если попытаться вернуться на тот канал, который "стопанулся" - воспроизвести уже не получается (но, думаю, что это уже глюки моей "связки").
а вот про строчку в логе хотелось бы узнать... можно ли как-то избежать и в чем тут проблема? поставщик контента виноват? или все-таки "клиент"?
.32
Павел, вот что имею сейчас:
Making a [lean] version (minimal size)
make[2]: Entering directory `/root/2001/src/gateway/udpxy'
mipsel-uclibc-gcc -W -Wall -Werror --pedantic -DNDEBUG -c udpxy.c -o udpxy.o
mipsel-uclibc-gcc -W -Wall -Werror --pedantic -DNDEBUG -c rparse.c -o rparse.o
mipsel-uclibc-gcc -W -Wall -Werror --pedantic -DNDEBUG -c util.c -o util.o
cc1: warnings being treated as errors
util.c: In function `tmfprintf':
util.c:431: warning: `%x' yields only last 2 digits of year in some locales
util.c: In function `tmfputs':
util.c:473: warning: `%x' yields only last 2 digits of year in some locales
make[2]: *** [util.o] Error 1
make[2]: Leaving directory `/root/2001/src/gateway/udpxy'
make[1]: *** [lean] Error 2
make[1]: Leaving directory `/root/2001/src/gateway/udpxy'
make: *** [udpxy] Error 2
А у меня 32-я сборка (как впрочем и все остальные) скомпилировалась с использованием OpenWRT SDK без проблем
Выложен только исходный код (тестировочное устройство было недоступно).
Build 33 (23-Mar-2008)
(*) udpxrec application added to record traffic into file
(*) miliseconds added to log timestamps
NB: чтобы пользоваться udpxrec нужно (самому) сделать ссылку на udpxy как на udpxrec, т.е.:
В дальнейшем планируется сделать make install через automake, но пока что тем, кто собирает вручную придётся и ссылку создавать "вручную".Code:$ln -s udpxy udpxrec $ ./udpxrec $ ./udpxrec 0.1 (build 33) standard usage: ./udpxrec [-v] [-b begin_time] [-e end_time] [-M maxfilesize] [-p pidfile] [-B bufsizeK] [-n nice_incr] [-m mcast_ifc_addr] [-l logfile] -c src_addr:port dstfile -v : enable verbose output [default = disabled] -b : begin recording at [+]dd:hh24:mi.ss -e : stop recording at [+]dd:hh24:mi.ss -M : maximum size of destination file -p : pidfile for this process -B : cache size for inbound (multicast) data [default = 64K] -R : maximum messages to cache in buffer (-1 = all) [default = -1] -n : nice value increment [default = 0] -m : name or address of multicast interface to read from -c : multicast channel to record - ipv4addr:port -l : write output into the logfile -u : seconds to wait before updating on how long till recording starts Examples: udpxrec -b 15:45.00 -e +2:00.00 -M 1.5Gb -n 2 -B 64K -c 224.0.11.31:5050 /opt/video/tv5.mpg begin recording multicast channel 224.0.11.31:5050 at 15:45 today, finish recording in two hours or if destination file size >= 1.5 Gb; set socket buffer to 64Kb; increment nice value by 2; write captured video to /opt/video/tv5.mpg udpxy is Copyright (C) 2008 Pavel V. Cherenkov and licensed under GNU GPLv3
udpxrec читает MPEG-TS и RTP/MPEG-TS (это то, чем активно пользуется Корбина), а пишет напрямую поток как MPEG-TS (по сути то же, что пишется в сеть). Файлы от udpxrec (записанные с расширением MPG) проигрываются vlc напрямую, другие плееры пока что (по моему опыту) "видят" только звук (MP3).
Сборка 34 выложена на sourceforge. Изменения: 1 bug fix.
К вопросу о проигрывании потока:
Файлы MPEG-TS (на выходе udpxrec) следует перекодировать в MPEG-PS, чтобы их "понимало" большинство плееров. Перекодировать можно с помощью vlc вот так:
В принципе, перекодировщик можно было бы сделать и свой, но перегружать повозку пока не вижу смысла.Code:vlc input-ts.mpg --sout="#std{access=file,mux=ps,dst=out-ps.mpg}"
Всех благ, жду результатов тестирования.
Предлагаю тогда в примере заменить расширение mpg на ts, тем более, что это и есть ts файл.
Павел, скомпилировал под OpenWRT как обычно 34-й билд, и в результате udpxy отказывается запускаться, выдавая сообщение в лог:
Что можно предпринять, чтобы продиагностировать ситуацию?Code:Mar 24 22:46:00 udpxy[17666]: unlink: No such file or directory
Ошибка, выявленная ega2002, исправлена (спасибо за тестирование!).
Сборка 35 выложена на SF.
Павел