[Ответить в тред] Ответить в тред

03/04/16 - Набор в модераторы 03.04 по 8.04
26/03/16 - Конкурс: Помоги гомункулу обрести семью!
15/10/15 - Набор в модераторы 15.10 по 17.10


[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 16 | 2 | 7
Назад Вниз Каталог Обновить

Передача видеопотока между двумя компами в локалке Аноним (Microsoft Windows 7: Firefox based) 12/04/16 Втр 19:07:35  1674123  
14604772552810.png (11Кб, 642x203)
14604772552811.png (15Кб, 640x205)
Сап, аноны. Я знаю, что среди вас есть гуру ffmpeg и кодирования, поэтому прошу помощи в сложной задачке, которую хотелось бы решить.

Исходные данные таковы: есть два компа в одной локалке. С компа 1 нужно стримить экранный видеопоток на комп 2, на котором запущен RTMP сервер, причём делать это с минимальной нагрузкой на комп 1.

На компе 1 установлена Windows XP, и нет возможности это поменять, поэтому всякие OBS и прочее подобное отлетает сразу.

Я пробовал стримить ffmpeg'ом напрямую на RTMP сервер, это работает, но при этом загрузка процессора на первом компе достигает 70-80% (из-за того, что видео кодируется в x264 перед передачей). При этом если стримить на тот же самый сервер поток, который не надо кодировать - загрузки процессора практически нет. Из-за этого у меня родилась совершенно логичная мысль - а что если гнать без всякого сжатия по сети (гигабит всё же) видеопоток, и пережимать его уже на втором компе? Ведь ffmpeg поддерживает tcp стримы, и может их слушать.
Но вот именно в этом месте я и застрял. Я запускаю на втором компе ffmpeg, который слушает порт, потом запускаю поток на первом компе. И получаю ошибки пикрелейтед (первый скрин с компа 1, второй - с компа 2).

Внимание, вопрос - как это победить? Как передать несжатый видеопоток через ffmpeg'овский tcp стрим? Пробовал включать опции 'analyzeduration' и 'probesize' - эффекта никакого.
Аноним (Microsoft Windows 7: Firefox based) 12/04/16 Втр 19:16:18  1674129
>>1674123 (OP)
Ты даже параметры не показал, с которыми запускаешь.
Аноним (Microsoft Windows 7: Firefox based) 12/04/16 Втр 19:21:51  1674136
>>1674123 (OP)
>>1674129
Да совсем уже голова закипела, забыл. Прошу прощения.

Комп 2 (который слушает)
ffmpeg -f rawvideo -i tcp://172.17.9.2:15969?listen=1 -vcodec libx264 -r 25 -acodec libmp3lame -b:a 128k -f flv "rtmp://172.17.9.2:1935/"

Комп 1 (который передает)
ffmpeg -f dshow -i video="screen-capture-recorder" -c copy -f rawvideo tcp://172.17.9.2:15969



Аноним (Microsoft Windows XP: Firefox based) 12/04/16 Втр 19:38:14  1674156
>>1674136
2516620 /1024 /1024 = 2,4 чуть-чуть не влезает
Аноним (Microsoft Windows 7: Firefox based) 12/04/16 Втр 19:41:48  1674162
>>1674156
Да это там уже хуйня полная. Я попробовал уже гнать по tcp самый обычный видеофайл с заранее определенным форматом (а не rawvideo) - всё равно не работает.
Аноним (Microsoft Windows XP: Firefox based) 12/04/16 Втр 19:46:29  1674172
>>1674162
>с заранее определенным форматом
Давай скрыны с руганью. Пока подозрения на слабость 1-го комплюктера и относительную узость канала
Аноним (Microsoft Windows 7: Firefox based) 12/04/16 Втр 20:39:05  1674215
>>1674172
Сейчас закрыл все окошки командной строки, открыл заново, вбил команды - и о чудо, оно работает. Впрочем, особой радости оно мне не принесло - даже при ограничении в 10 кадров в секунду битрейт радостно несется к 700-800 мегабитам. А там уже и роутеру начинает становиться немного тяжеловато, да и комп такой сетевой поток тоже переваривает с некоторым трудом. Короче говоря, затею надо считать провальной. Без предварительного кодирования на первом компе вряд ли что-то выйдет дельное, выдающее хотя бы 25-30 фпс. А с одновременным кодированием на первом компе работать не получится.
Аноним (Microsoft Windows XP: Firefox based) 12/04/16 Втр 21:33:59  1674252
>>1674215
Ожидаемо. Попробуй другие кодеки. Или покрути профили 264-го. Эдакая прекомпрессия
А дожимать до приемлемого минимума - на втором ~780 Мб фактически вхолостую - некоторый перебор
Аноним (Microsoft Windows XP: Firefox based) 12/04/16 Втр 21:38:20  1674259
>>1674252
WebM'ы там всякие... Кстати, WMV в статику охуенно тащит. Правда, не знаю про поддержку потокового вещания и его ffmpeg'ом
Аноним (Microsoft Windows 7: Firefox based) 13/04/16 Срд 08:17:37  1674491
14605246575490.png (114Кб, 1366x768)
14605246575511.png (1583Кб, 1441x794)
Утро, свежая голова - и проблема вроде бы таки решена. Решил использовать mpeg2video - и оно работает. Загрузка процессора на XP - 10-15%. Уже хороший результат. Может быть ещё лучше смогу сделать.
Аноним (Microsoft Windows 7: Chromium based) 13/04/16 Срд 08:21:21  1674492
>>1674123 (OP)
А обязательно в 264? Почему бы не попробовать в mpeg2, всяко меньше сырого потока, но менее затратно для процессора. По крайне мере у меня поток с такими параметрами MPEG2 Video 720x576 (16:9) 25fps 4200kbps дает скорость потока 3,5 Мбит/сек. Правда и поток у меня идет UDP мультикастом в отдельной VLAN на нормальном коммутаторе. Поток спокойно транскодируется из mpeg4 на i5-4670 и загружает процессор не более 5%, думаю хватит даже старенького c2d для подобной задачи.
Аноним (Microsoft Windows 7: Firefox based) 13/04/16 Срд 08:25:43  1674493
>>1674492
А я так и сделал, читай предыдущий пост. В 264 я его уже кодирую на машине с 7, там загрузка не важна. А на XP хватаю в mpeg2. И оно работает вполне прилично.
Аноним (Microsoft Windows 7: Chromium based) 13/04/16 Срд 08:37:28  1674499
>>1674493
Не обновил тред перед отправкой поста, лол.
Аноним (Google Android: Firefox based) 13/04/16 Срд 09:08:51  1674510
>>1674491
Лучше уже скорее нет. Оставляй так.
Аноним (Microsoft Windows 7: Firefox based) 15/04/16 Птн 08:20:58  1676583
ОП снова тут, есть ещё вопросец по ffmpeg. Пытаюсь с rtmp писать стрим в файлы, разделяя по времени их.
Вот примерно так: ffmpeg -i rtmp://192.168.16.82:1935 -f segment -strftime 1 -segment_time 10 -segment_format avi E:\record\CAM1_%Y-%m-%d_%H-%M-%S.avi
Фвйлы создаются, видео пишется, но с ошибкой. Первый файл создается нормально (идёт 10 секунд). Второй файл создается и имеет длину 20 сек, но из них первые 10 секунд - статичная картинка. Третий файл имеет длину 30 сек, первые 20 - тоже самое, и так далее. Есть ли фикс для этого?
Аноним (Linux: Firefox based) 15/04/16 Птн 11:57:11  1676687
>>1676583
-reset_timestamps 1 на выходе.
Аноним (Microsoft Windows 7: Firefox based) 15/04/16 Птн 13:55:07  1676782
>>1676687
Ты охуенен. Заработало сразу. Спасибо большое, анон.

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 16 | 2 | 7
Назад Вверх Каталог Обновить

Топ тредов