mplayer/mencoder로 YUV 비디오를 읽는 데 문제가 있습니다.

mplayer/mencoder로 YUV 비디오를 읽는 데 문제가 있습니다.

저는 YUV 원시 비디오 형식으로 몇 가지 경험을 만들고 있습니다. 제가 만든 이 YUV 비디오(mjpegtools의 pmtoy4m, 24fps로 촬영한 일련의 스크린샷에서)는 Totem, 정확한 속도, 정확한 색상 등 모든 면에서 제대로 재생됩니다. 또한 ffmpeg는 이를 .mpg로 문제없이 변환할 수 있습니다. 그러나 mplayer와 mencoder는 길을 잃습니다. CentOS 6에서 버전 1.0-0.47.svn20100703을 사용하고 있습니다.

나는 노력했다 ...

mplayer video.yuv -demuxer rawvideo -rawvideo w=1152:h=864:format=i420

...하지만 그 결과는 수평 조절이 완화된 오래된 TV처럼 이상한 프레임 변위가 발생합니다. 겉으로는 프레임 헤더를 프레임의 일부인 것처럼 해석하는 것 같습니다.

bzip으로 압축된 YUV 파일을 찾을 수 있습니다.여기(경고: 압축 시 34MB, 비압축 시 3.5GB!)

개별ppm 프레임은 다음과 같습니다.여기(압축 시 2.8MB, 비압축 시 557MB)

동영상은 다음을 사용하여 생성되었습니다.

cat *.ppm | ppmtoy4m -F 24:1 >video.yuv

누락된 매개변수가 있나요?

답변1

문제는 y4m 형식이 yuv가 아니라는 것입니다. slhck가 언급했듯이 yuv에는 메타데이터가 없으며 너비 및 높이 정보도 부족합니다(4:2:0 4:2:2 또는 4:4:4 , 8비트, 10비트, 16비트 변형 지정은 말할 것도 없고).

Y4M 형식에 대한 설명을 다음에서 찾았습니다.https://wiki.multimedia.cx/index.php?title=YUV4MPEG2확실히 메타데이터가 있습니다.

mplayer재생할 수 있는 원시 yuv 스트림을 원하는 경우 ppmtoy4m해당 스트림을 생성하지 않습니다. 당신은 사용할 수 있습니다

ffmpeg -i %04d.ppm -c:v rawvideo -f rawvideo -pix_fmt yuv420p video.yuv

mplayer대신 y4m 스트림을 재생하려면 다른 사람이 (또는 다른 도구) 에 대한 올바른 인수를 찾아야 합니다 .

관련 정보