1

ffmpeg を使用して、Web カメラから生のビデオを RGB 形式でキャプチャしました。

ffmpeg -f video4linux2 -s 320x240 -r 10 -i /dev/video0 -f rawvideo \
-pix-fmt rgb24 -r10 webcam.rgb24

この raw ビデオ ファイルは mplayer で問題なく再生されます。

x264 を使用してこのファイルをエンコードします。

x264 --input-res 320x240 --demuxer raw --input-fmt rgb24 --fps 10 \
-o webcam.mkv webcam.rgb24

ただし、vlc で webcam.mkv を再生しようとすると、インターレースされた歪んだ画像になります。

何が間違っているのかわかりません。

4

2 に答える 2

1

さらに調査を重ねた結果、未加工のビデオ ストリームを正常にエンコードすることができました。問題 (私が思うに) は、x264 が yuv420p 形式のデータを期待することでした。キャプチャ形式を変更すると、mkv ファイルを歪みなく再生できました。

キャプチャ コマンド:

ffmpeg -t 10 -f video4linux2 -s 320x240 -r 10 -i /dev/video0 -f rawvideo \
-pix_fmt yuv420p -r 10 webcam.yuv420p

(入力デバイス /dev/video0 からフレームレート 10 で 10 秒間キャプチャし、yuv420p ピクセル形式でファイル webcam.yuv420p に出力)

エンコード コマンド:

x264 --input-res 320x240 --demuxer raw  --input-fmt yuv420p --fps 10 \
-o webcam.mkv webcam.yuv420p 

再生コマンド:

mplayer -vo gl:nomanyfmts webcam.mkv

(または vlc で開きます)

于 2012-07-11T01:55:04.277 に答える
0

問題は、 --input-fmt オプション (lavf demuxer 用に特別に存在する) を --demuxer raw と共に使用することでした。生のデマルチプレクサでは、 --input-csp オプションを使用する必要があります (おそらく ffmpeg の -pix-fmt rgb24 の bgr 値を使用)。

于 2012-07-24T12:19:49.517 に答える