У меня есть веб-камера Logitech C920. Он имеет возможность напрямую кодировать видео в H264.
Я хочу воспроизвести то, что было сделано с Beaglebone, но с использованием Raspberry Pi: отправить поток H264 в сеть . Тогда Raspberry Pi предназначен только для упаковки потока в RTP, сжатие видео выполняется самой веб-камерой. Режим H264 обеспечивается с использованием video4linux.
Пока, и если я использую обычный компьютер с последней версией Ubuntu, он работает с использованием VLC в качестве сервера или GStreamer. Например, если я запускаю на Raspberry Pi сервер VLC, используя команду:
cvlc --sout=#rtp{sdp=rtsp://:8554/test} 'v4l2:///dev/video0:chroma=H264:width=800:height=600:fps=30'
... а затем, если я читаю поток с VLC на другом компьютере, все в порядке.
Однако, если я использую Raspberry Pi для отправки видеопотока, результат довольно плохой. Много мусора на изображении, как только что-то движется. Ключи изображений хорошо принимаются каждые 10 секунд, но в то же время они недостаточно хороши по сравнению с потоком с обычного компьютера.
Я также попробовал метод, описанный для beaglebone, с помощью предоставленной утилиты захвата : хорошо, если я смотрю с реального компьютера, та же проблема с мусором, если я смотрю с Raspberry Pi.
Это не проблема сети: я провел некоторые проверки сети с Wireshark и статистикой VLC, у меня нет потери пакетов. Я пробовал использовать Raspbian и Arch Linux для Raspi (gstreamer 0.10 в raspbian, gstreamer 1.0 в Arch Linux).
Я не знаю, уместно это или нет, но я также тестировал версию Raspbian с поддержкой float. Сначала необходимо выполнить обновление, чтобы использовать ядро 3.2; но та же проблема, видео имеет какой-то мусор.
Есть идеи о том, что я могу сделать, чтобы улучшить качество видео?