Как удалить/уменьшить пикселизацию потока mjpeg в FFMPEG

Я работаю над службой повторной потоковой передачи на стороне сервера для некоторых IP-камер. Я использую ffserver в Linux для обслуживания потоков и ffmpeg в Windows для подачи. Я получаю видео с камеры (H264) с помощью rtsp.

Мой пример конфигурации ffserver выглядит следующим образом

<Feed test.ffm>
File ./test.ffm
</Feed>

<Stream test.mjpg>
Feed test.ffm
Format mpjpeg
VideoFrameRate 3
VideoSize 704x480
NoAudio
FileMaxSize 100k 
VideoHighQuality
</Stream>

и способ подачи ffmpeg:

ffmpeg -rtsp_transport tcp -i "rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0" -vcodec copy -acodec copy "http://192.168.1.101:8090/test.ffm"

Полученное видео очень пикселизировано и отличается от реального изображения.

Конфигурация камер следующая:

Resolution: D1 (704*480)
FrameRate: 3
BitRate: 256k
BitRateType: Variable

Есть ли что-то, что я упускаю или делаю неправильно?

Заранее благодарю за любую помощь


person Luis Ruiz    schedule 10.01.2017    source источник


Ответы (2)


Для тех, у кого есть такая же проблема. Я решил с этим:

<Feed test.ffm>
File ./test.ffm
</Feed>

<Stream test.mjpg>
Feed test.ffm
Format mpjpeg
VideoFrameRate 3
VideoBufferSize 80000
VideoBitRate 512
VideoQMin 1
VideoQMax 10
VideoSize 1280x720
PreRoll 0
</Stream>

Потоковое видео теперь того же качества, что и источник.

person Luis Ruiz    schedule 25.07.2017

Я думаю, что проблема в потоковой передаче исходной камеры, на мой взгляд, 256 Кбит / с - это плохой битрейт для разрешения D1.

Если вы можете это сделать и это не влияет на пропускную способность вашей сети, вы можете попробовать увеличить битрейт камеры до 768 или 1024 Кбит/с, чтобы увидеть разницу.

Также FrameRate 3, возможно, немного частота кадров. В зависимости от того, что вы снимаете своей камерой (статическое изображение, такое как пейзаж, или очень динамичное изображение, такое как дорога), в динамическом потоке захвата 10 или 15 кадров/с являются более реалистичными значениями.

person Hokusai    schedule 10.01.2017
comment
Одна из проблем заключается в том, что я (несмотря ни на что) не могу использовать большую часть полосы пропускания камер, поскольку они транслируются с использованием сотовой связи. Я знаю, что это не лучшая установка, но разница между этими изображениями (предварительно и постобработанными) огромна. тот, который я получаю от ffserver, похож на сетку, я имею в виду, что я ясно вижу кучу квадратов, которых я не вижу на исходном. - person Luis Ruiz; 11.01.2017
comment
Тогда конфигурация источников камеры кажется в порядке. Вы пытались увеличить FileMaxSize до других высоких значений, таких как 1M? (только чтобы проверить, где проблема) - person Hokusai; 11.01.2017
comment
Я тоже это пробовал. Единственное, что я получаю при этом, — это Hyperlapse всякий раз, когда вы запрашиваете видео с ffserver, пока оно не догонит фактическое время. Это не влияет на качество изображения - person Luis Ruiz; 11.01.2017