1

Я хочу подключить аналоговую камеру к старому компьютеру с Linux и напрямую передать /dev /video0 на другой компьютер, где я снова смогу использовать его в качестве устройства (например, /dev /video0 должен перейти к /dev /remote0, например)

(Причина этого заключается в том, что на компьютере недостаточно энергии для кодирования видео)

Это возможно? Я видел, как люди могут передавать данные напрямую с устройства через ssh в mplayer, но мне нужно иметь какую-то контрольную точку для Zoneminder.

  • Редактировать: Как сказал Фил Ханнент: SSH, вероятно, будет слишком ресурсоемким для аппаратного обеспечения, поскольку оно должно шифровать отправляемые данные. Так возможно ли это в такой программе, как tcptunnel?

  • Edit2: На сайте Unix & Linux stackexchange я нашел вопрос, который использует это для передачи по ssh: ssh localhost dd if=/dev/video0 | mplayer tv://device=/dev/stdin это можно сделать через tcptunnel?

3 ответа3

3

Вы можете использовать netcat.

cat /dev/video0 | nc -l 1234

Это откроет сервер на одном хосте, прослушивающий порт 1234 и отправляющий несжатые и незашифрованные данные из /dev/video0 любому клиенту, который подключается. Вы можете получить данные на другом хосте, вызвав:

nc videohost 1234 | mplayer tv://device=/dev/stdin

где videohost - хост, отправляющий данные из /dev/video0 .

2

Я бы серьезно посоветовал вам против этого. Я недавно пытался потоковое видео AVI через доступ к файлу ssh:// и это больно. Вы должны помнить, что видео шифруется, а затем расшифровывается во время этого процесса.

Если ваш компьютер не может обработать сжатие потока, то он, безусловно, не сможет обработать его шифрование.

На самом деле вы хотите просто иметь tcp туннель с необработанными данными:

http://www.vakuumverpackt.de/tcptunnel/

0

Решение Netcat не работает для меня. Это либо показывает ошибку канала, либо cat сообщает о Invalid input .

Это единственное решение, которое сработало для меня:

ssh user@host "ffmpeg  -r 14 -s 640x480 -f video4linux2 -i /dev/video0 -f matroska -" | mplayer - -idle

Преимущество кодирования заключается в том, что вы экономите пропускную способность в качестве бонуса.


Совместите с тройником, и вы сможете одновременно смотреть и записывать:

ssh user@host "ffmpeg  -r 14 -s 640x480 -f video4linux2 -i /dev/video0 -f matroska -" | tee $(date +%Y-%m-%d_%H-%M-%S)_recording.mkv | mplayer - -idle

Это откроет mplayer для прямой трансляции и сохранит его в файл, содержащий одновременно текущее время и дату (например, имя файла: 2018-11-22_01-22-10_recording.mkv).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .