비디오 인코딩에 대한 지식이 전혀 없습니다. OpenGL로 작성된 응용 프로그램이 있습니다. 생성 한 프레임을 png 이미지로 저장하고 있습니다. 내 앱의 프레임은 7FPS이고 여기에서 동영상을 만들려고합니다.

그 목적을 위해 다음과 같은 ffmpeg를 사용합니다.

ffmpeg -framerate 30 -i img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4

이 사이트에서 가져 왔지만 애니메이션을 보여주는 동영상이있을 수 있는지 궁금합니다. 30FPS에서?

댓글

답변

아래 코드를 사용하여 동일한 작업을 수행합니다.

ffmpeg -framerate 30 -i img%03d.png -c:v libx264 -pix_fmt yuv420p -crf 23 output.mp4 

명령 분석 :

ffmpeg <- call ffmpeg -framerate 30 <- set the input framerate to 30 -i img%03d.png <- read PNG images with filename img001, img002, img003, etc.. img can be changed to another prefix %03d can be changed to %04d for 0001, %05d for 00001 formats, etc... -c:v libx264 <- Set the codec to libx264 -pix_fmt yuv420p <- Set the pixel format to planar YUV 4:2:0, 12bpp -crf 23 <- set the Constant Rate Factor to 23 (default value) -output.mp4 <- the output filename 

30fps로 입력을 읽습니다 (-framerate 30 옵션)을 사용하고 일정 비율 요소 가 23 인 libx264 코덱을 사용하여 인코딩합니다 (-crf 23 옵션).

답변

고려할 프레임 속도에는 입력과 출력의 두 가지가 있습니다.

기본적으로 입력 프레임 속도는 25입니다. , 출력은 별도로 지정하지 않는 한 입력과 동일한 프레임 속도를 사용합니다.

입력 및 출력에 대해 동일한 프레임 속도

및 출력을 동일한 프레임 속도로 설정 한 다음 입력 프레임 속도를 제공합니다. 이 예에서는 30000/1001 (NTSC 동영상)의 프레임 속도를 설정합니다.

ffmpeg -framerate 30000/1001 -i input output.mp4 
  • 또는이 예에서는 다음을 사용할 수 있습니다. 30000/1001 대신 ntsc. 그러나 정확하지 않거나 29.97를 사용하지 마십시오. 다른 프레임 속도 별칭 을 참조하세요.

  • 기본 입력 프레임 속도는 25이고 출력 프레임 속도 만 설정하면 보상을 위해 프레임이 삭제되거나 복제됩니다. 따라서이 상황에서 입력 프레임 속도가 설정됩니다.

입력에 대한 다른 프레임 속도 및 출력

때때로 입력 프레임 속도와 출력 프레임 속도가 달라야 할 수 있습니다. 예를 들어 특정 속도로 프레임을 입력 한 다음 프레임을 복제하거나 드롭하여 출력이 출력 형식 컨테이너, 플레이어 및 / 또는 기기와의 호환성 문제로 인해이 작업을 수행 할 수 있습니다.

  • 이 예제에서 프레임은 복제되어 10에서 25로 이동합니다. 콘솔 출력은 프레임이 삭제되었는지 또는 복제되었는지를 알려줍니다.

  • 이미지 파일 demuxer -framerate을 사용하지만 출력 프레임 속도는 -r를 사용하여 설정됩니다.

  • 다음에 -pix_fmt yuv420p 옵션을 추가해야 할 수 있습니다. H.264 비디오를 출력하는 경우 일부 상황 (필요한 경우 ffmpeg 콘솔 출력에서 경고가 표시됨). 모든 플레이어와 호환되는 크로마 서브 샘플링 체계를 사용합니다.

댓글

  • ffmpeg 버전 3.2.2 나에게 알려줍니다 : Option framerate not found. 🙁
  • 예, 맞습니다.하지만 -framerate 옵션은 존재하지 않습니다. 일련의 이미지를 특정 프레임 속도의 동영상으로 변환하는 것과는 아무런 관련이 없으므로 내 댓글을 삭제하겠습니다.
  • @erik -framerate 존재합니다. ' 이미지 및 rawvideo demuxer와 x11grab 및 v4l2와 같은 일부 입력 장치에서 사용합니다.
  • 문서화 되었습니까? ' man ffmpeg 페이지를 읽었지만 ' 찾을 수 없습니다. 포인터가 있습니까?
  • 좋습니다. 찾았습니다 … FFMPEG-DEVICES(1).

답변

ffmpeg -framerate 30 -i img%03d.png output.mp4 

늦게는 충분합니다. t 버전의 ffmpeg.

댓글

  • -pix_fmt yuv420p를 잊지 마세요. 그렇지 않으면 파일로 끝날 수 있습니다. 많은 소프트웨어 도구가 ' 좋아하지 않는 경우 : trac.ffmpeg.org/ticket/8856

답변

동영상 보간에 대해 이야기하고 있습니다. 비디오 보간없이 7fps가 30fps가 될 수있는 방법은 없습니다 … 기본적으로 비디오를 만드는 과정에서 처음부터 30fps를 얻고 싶습니다. 비디오 보간에는 많은 리소스와 시간이 소요될 수 있습니다. 인공물로 가득 차 있습니다.어도비로 한 장의 사진을 짧은 영화로 만들 수 있다고 들었는데 거기에서 많은 수작업이 필요했습니다 …

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다