LINUX.ORG.RU

Connection timeout

 , ,


0

2

Как установить timeout(open, connect, read, write, любой) при открытии «файла» в ffmpeg?

тут указано, что

rw_timeout Timeout for IO operations (in microseconds)

В самом rtmp есть timeout, но он влияет только на listen

Перепробовал все параметры уже

const char *in_filename  = "rtmp://8.8.82.8:1939/live/app";
AVDictionary* options = NULL;

//av_dict_set(&options, "stimeout", "1", 0);
//av_dict_set(&options, "open_timeout", "1", 0);
//av_dict_set(&options, "timeout", "1", 0);
av_dict_set(&options, "rw_timeout", "1", NULL);

ret = avio_open2(&ifmt_ctx, in_filename, AVIO_FLAG_WRITE, NULL, &options);


Отрубается с ошибкой через 5 сек. Хотелось бы как то повлиять на
это время

[tcp @ 006AB400] Connection to tcp://8.8.82.8:1939 failed: Error number -138 occurred
[rtmp @ 006AAF00] Cannot open connection tcp://8.8.82.8:1939

★★★★

если в коде ffmpeg эти таймауты для сокетов не задаются явно (через setsockopt(), ioctl() или ещё как-то), то никак

можно ещё глобальные настройки таймаутов покрутить через sysctl

Harald ★★★★★
()
Ответ на: комментарий от anonymous

или зайди в исходники rtmp и увидишь, что они проебывают timeout в tcp; после патченья chromium пропатчь свой ffmpeg

also, ты решил просканить интернеты на rtmp и уткнулся в захардкоженые в ffmpeg на tcp 5сек?

anonymous
()

никак

потому что леер tcp открывается позже, и таймаут в него с rtmp при коннекте не передается

можете пропатчить rtmpproto.c

anonymous
()
Ответ на: комментарий от anonymous

Да, пропатчить не сложно, но как то странно, что такой элементарный параметр не доавили, этому rtmp ужесколько лет в ffmpeg'e

gobot ★★★★
() автор топика
Ответ на: комментарий от gobot

ну ffmpeg пишут тупые ебланы, а вы как думали ?

option передается

но только для url_open2

стратегия url_open не принимает option сверху

а tcp реализовывает url_open только, поэтому в tcp леер опция доходит только если указать

в rtmpproto.c это не указывается

anonymous
()
Ответ на: комментарий от anonymous

Да, URLContext «подхватывает» мой option rw_timeout, он даже доходит до tcp, но потом тут он «перезатирается» priv_data

gobot ★★★★
() автор топика
Последнее исправление: gobot (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.