使用C ++中的RTP从网络摄像头流式编码MPEG-4实时视频

时间:2017-03-06 14:20:03

标签: opencv encoding ffmpeg stream mpeg-4

我一直在使用Linux中使用C ++语言的RTP协议从网络摄像头构建视频流。我能够使用opencv从网络摄像头中取出帧并将它们逐帧发送到客户端应用程序,该应用程序使用每秒相同的帧参数逐个显示这些帧。

但这主要是MJPEG类型的传输,因为所使用的编码是JPEG编码,每帧具有特定的质量。但是,我想在传输视频之前使用MPEG-4编码。经过网上深入搜索后,我发现ffmpeg是最适合此目的的。但是,在线样本主要通过命令行界面来捕获网络摄像头视频,并将其保存为具有给定编码和格式的视频文件。

我在这里问的是什么。是否有可能对网络摄像头“LIVE”进行编码,并在编码摄像机流时获取字节数据。我想使用这些字节数据来传输它,例如使用RTP。然后我想解码收到的字节数据并使用opencv imshow函数显示视频。

我希望我能清楚地解释我的问题。

先谢谢了,

此致, MAAD

1 个答案:

答案 0 :(得分:0)

是的,这是可能的。 FFmpeg本身由多个库组成,可以在外部用于开发自己的程序。

您应该查看这些链接以获取指导:

Developing Programs Using the FFmpeg Libraries

Using libav* libraries

libavcodec API use example