如何删除/减少FFMPEG中mjpeg流的像素化

时间:2017-01-10 17:49:21

标签: video ffmpeg rtsp ffserver

我正在为一些IP摄像头进行服务器端重新流服务。 我在Linux上使用ffserver来提供流,并在Windows上使用ffmpeg来提供。 我正在使用rtsp获取摄像机视频(H264)。

我的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:admin@192.168.1.12: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

我有什么遗漏或做错了吗?

提前感谢您提供任何帮助

2 个答案:

答案 0 :(得分:1)

对于那些有相同问题的人。我解决了这个问题:

<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>

流媒体视频的质量与源相同。

答案 1 :(得分:0)

我认为问题出在源摄像头流媒体上,在我看来,对于D1分辨率,256 Kb / s是一个很差的比特率。

如果你能做到并且它对网络带宽没有影响,你可以尝试将摄像机比特率提高到768或1024 Kb / s来查看差异。

3的FrameRate也许是一个小帧率。根据您使用相机拍摄的内容(静态图像,如风景或非常动态的图像,如交通道路),在动态捕捉流中,10或15帧/秒是更真实的值。