运行ffmpeg
时,我得到以下输入/输出/流语句。我需要了解这里的细节。
$ ffmpeg -y -nostdin -f v4l2 -framerate 30 -video_size 1920x1080 -c:v mjpeg -i /dev/video1 -c:v copy /tmp/v1.mov
Input #0, video4linux2,v4l2, from '/dev/video1':
Duration: N/A, start: 762195.237801, bitrate: N/A
Stream #0:0: Video: mjpeg, yuvj422p(pc, bt470bg/unknown/unknown), 1920x1080, -5 kb/s, 30 fps, 30 tbr, 1000k tbn, 1000k tbc
Output #0, mov, to '/tmp/v1.mov':
Metadata:
encoder : Lavf56.40.101
Stream #0:0: Video: mjpeg (jpeg / 0x6765706A), yuvj422p, 1920x1080, q=2-31, -5 kb/s, 30 fps, 30 tbr, 1000k tbn, 1000k tbc
Stream mapping:
Stream #0:0 -> #0:0 (copy)
frame= 1685 fps= 30 q=-1.0 Lsize= 212483kB time=00:00:56.08 bitrate=31036.6kbits/s
我想通过USB 3.0集线器连接2个USB摄像头。我的相机是USB 2.0相机。以低分辨率或帧速率运行2个摄像头,但在高分辨率/帧速率下,我的USB带宽耗尽。
Video: mjpeg, yuvj422p(pc, bt470bg/unknown/unknown)
是否意味着 ffmpeg正在接收两者压缩mjpeg流和以及 未压缩的yuv流?如果是这种情况,它会解释带宽 问题。我问,因为我可以看到流映射部分中的压缩比特率仅为31 Mbit。我的问题就变成了,我可以强迫相机仅 流压缩的mjpeg流?
P.S。我知道我可以将相机插入单独的USB端口,但我只有3个端口,需要记录6个摄像头,所以每个USB(3.0)集线器至少需要2个摄像头。
答案 0 :(得分:2)
在Video: mjpeg, yuvj422p(pc, bt470bg/unknown/unknown)
中,mjpeg
是编解码器,yuvj422p
是ffmpeg解码输入的未压缩流的像素格式,pc
表示整个位深度用于表示颜色,即0 =黑色,255 =白色。接下来的三个值表示颜色空间属性。我相信顺序是原色,空间和传递特性(或伽玛函数)。
所以,你不是一次摄取两个流。