如何使用ffmpeg从网络摄像头访问压缩流

时间:2014-10-17 11:12:42

标签: video ffmpeg streaming webcam

我想用ffmpeg直播网络摄像头。我的Logitech c920网络摄像头具有原始和压缩数据的输出流。命令ffmpeg -f v4l2 -list_formats all -i /dev/video1生成以下控制台输出:

[video4linux2,v4l2 @ 0x26709e0] Raw       :   yuyv422 :     YUV 4:2:2 (YUYV) : 640x480 160x90 160x120 176x144 320x180 320x240 352x288 432x240 640x360 800x448 800x600 864x480 960x720 1024x576 1280x720 1600x896 1920x1080 2304x1296 2304x1536
[video4linux2,v4l2 @ 0x26709e0] Compressed:      h264 :                H.264 : 640x480 160x90 160x120 176x144 320x180 320x240 352x288 432x240 640x360 800x448 800x600 864x480 960x720 1024x576 1280x720 1600x896 1920x1080
[video4linux2,v4l2 @ 0x26709e0] Compressed:     mjpeg :                MJPEG : 640x480 160x90 160x120 176x144 320x180 320x240 352x288 432x240 640x360 800x448 800x600 864x480 960x720 1024x576 1280x720 1600x896 1920x1080

我想复制压缩的h264图像并将其发送到ffserver。

当我使用此命令时ffmpeg -r 25 -f v4l2 -i /dev/video0 -c:v libx264 -b:v 2500k http://localhost:8090/feed1.ffm程序获取原始数据并使用h264编解码器对其进行转码。

当我将-c:v libx264更改为-c:v copy时,我收到错误,因为ffmpeg尝试复制原始相机图像。

如何访问h264压缩映像并将其发送到服务器?

1 个答案:

答案 0 :(得分:2)

FFmpeg有一个input_format option来指定输入设备的格式。尝试将-input_format h264添加为命令的输入选项。