일반적으로 1920x1080이지만 때로는 1919x1080 또는 1920x1079 인 프레임을 생성하는 도구 모음이 있습니다. (예, 이것은 버그입니다. 계속 읽으십시오.) ffmpeg가 다음과 같은 명령을 사용하여 비디오를 인코딩 할 때
ffmpeg -y -r 30 -i foo/%04d.png -vcodec h264 out.mp4
다음과 같은 발언을 인쇄합니다.
Input stream #0:0 frame changed from size:1919x1080 fmt:rgb24 to size:1920x1080 fmt:rgb24
그러나 해당 프레임은 크기가 조정되고에 포함되지 않고에서 out.mp4
생략됩니다 out.mp4
.
그 프레임이 포함될 수 있습니까? 포럼과 문서에서 프레임 크기가 일정하지 않다는 언급은 없었지만 ffmpeg 자체 는 프레임 크기를 조정 한다고 주장 합니다. (비고는 ffmpeg.c의 1688 행에 인쇄됩니다. 여기에 플래그 resample_changed
가 설정되어의 너비 및 높이 필드 InputStream *ist
가 수정됩니다.)
David Elliman은 https://stackoverflow.com/questions/18043841/ffmpeg-missing-image-frames-in-generated-video-from-images?rq=1 에 대한 답변에서 유사한 동작을보고 할 수 있습니다 .
아마도 scale
비디오 필터는 당신이 찾고있는 것을 제공 할 수 있습니다 :
ffmpeg -r 30 -i foo/%04d.png -vf "scale=1920:1080,format=yuv420p" -codec:v libx264 out.mp4
이것은 각 프레임에 대해 1920x1080의 크기를 강제합니다. 이로 인해 이상한 크기의 입력이 잘못 조정되지 않고 잘린 경우 이미지가 약간 늘어나거나 찌그러 질 수 있습니다. 이 경우 pad
비디오 필터를 대신 사용하는 것이 좋지만 누락 된 픽셀을 보완하기 위해 단색 막대가 생성된다는 점에 유의하십시오.
scale
또한 당신이 그것을 멋지게 만들고 싶다면 다양한 기능 을 허용 합니다. 예제는 정적 크기의 플레이어 에 맞게 ffmpeg로 비디오 크기 조정을 참조하십시오 .
format=yuv420p
libx264에 대한 RGB 입력을 사용하면 ffmpeg는 대부분의 플레이어가 디코딩 할 수없는 YUV 4 : 4 : 4 평면 픽셀 형식을 생성하는 크로마 서브 샘플링을 피하려고 시도하기 때문에 추가했습니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다