Ffmpeg
使用 ffmpeg 錄製網路攝像頭
我正在努力使用 ffmpeg。我的網路攝像頭可以以 30fps 的速度拍攝 720p,但僅在使用 MJPEG 編解碼器時:
~> v4l2-ctl --list-formats-ext ioctl: VIDIOC_ENUM_FMT Index : 0 Type : Video Capture Pixel Format: 'YUYV' Name : YUV 4:2:2 (YUYV) -- cut -- Size: Discrete 1280x720 Interval: Discrete 0.133 s (7.500 fps) Interval: Discrete 0.200 s (5.000 fps) -- cut -- Index : 1 Type : Video Capture Pixel Format: 'MJPG' (compressed) Name : MJPEG -- cut -- Size: Discrete 1280x720 Interval: Discrete 0.033 s (30.000 fps) Interval: Discrete 0.040 s (25.000 fps) Interval: Discrete 0.050 s (20.000 fps) Interval: Discrete 0.067 s (15.000 fps) Interval: Discrete 0.100 s (10.000 fps) Interval: Discrete 0.200 s (5.000 fps) -- cut --
我不知道如何告訴 ffmpeg 讀取 MJPEG 壓縮格式。它正在嘗試讀取原始變體,結果以可怕的質量結束。
你沒有說你正在使用什麼選項,但我確實找到了這兩個例子。這些對你有用嗎?
ffmpeg -i <input_file> -vcodec mjpeg -qmin 1 -qmax 1 -o <output_file.avi> ffmpeg -i <input_file> -vcodec mjpeg -qscale 1 <output_file.avi>
對於第二個範例,我發現一個註釋提到該
-qscale ...
開關產生了明顯的不同。x 越低,質量越好(範圍 2 到 32,允許分數)。