使用x264编码文件扭曲vlc播放

时间:2012-07-10 12:04:01

标签: ffmpeg webcam capture vlc x264

我使用ffmpeg:

从我的网络摄像头捕获了rgb格式的原始视频
ffmpeg -f video4linux2 -s 320x240 -r 10 -i /dev/video0 -f rawvideo \
-pix-fmt rgb24 -r10 webcam.rgb24

这个原始视频文件在mplayer中播放正常。

我使用x264编码此文件:

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

然而,当我尝试用vlc播放webcam.mkv时,它是一个交错的,扭曲的图像。

我不知道我做错了什么。

2 个答案:

答案 0 :(得分: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

(以10帧速率从输入设备/ dev / video0捕获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打开)

答案 1 :(得分:0)

你的问题是你使用--input-fmt选项(专门用于lavf demuxer)和--demuxer raw。使用原始分路器时,您应该使用--input-csp选项(bgr值可能适用于ffmpeg的-pix-fmt rgb24)。