몇 가지 "표준"프레임 속도가 있지만 특정 프레임 속도를 구체적으로 지원하는 것보다 임의의 프레임 속도를 지원하는 것이 훨씬 쉬워지고 있습니다. VLC와 같은 소프트웨어 플레이어의 경우 특히 그렇습니다.
VARIABLE fps에 대한 점점 더 많은 지원이 존재합니다. (VFR, 가변 프레임 속도). 동일한 비디오 내의 프레임 간 간격이 일정하지 않은 곳입니다. Matroska ( .mkv
) 또는 MPEG-4 ( .mp4
Apple과 밀접하게 관련된 ) 와 같은 많은 비디오 컨테이너 파일 형식 .mov
은 FPS 번호를 저장하지 않고 타임베이스 (예 : 1/30 초)를 저장 한 다음 각 프레임을 저장합니다. 해당 타임베이스의 배수로 타임 스탬프가 있습니다. 각 프레임 사이의 간격은 CFR (일정한 프레임 레이트) 비디오에서 시간 기준의 하나 또는 작은 정수의 단위가된다.
프레임이 거의 중복 된 보안 카메라 영상은 VFR의 명백한 사용 사례입니다. 또한 시간 중복성 (인터 (p 및 b) 프레임 사용)을 잘 활용하지 않는 단순한 비디오 코덱으로 압축되는 경우에도 마찬가지입니다. ( ffmpeg -vf mpdecimate
근접 듀프 프레임을 삭제하려면 다음 과 같이 재생 하십시오. -vsync 2
mp4로 출력 할 경우 사용하십시오. 어떤 이유로 인해 해당 muxer의 기본값이 아니지만 mkv 용입니다.)
또 다른 경우는 최신 스마트 폰입니다. 예를 들어, 동생의 Moto G (2 세대)는 VFR 비디오를 녹화합니다. 센서에 더 많은 빛이 필요할 때 프레임 속도를 낮 춥니 다. 전화기의 소프트웨어에 의해 생성 된 mp4에서 mediainfo를 실행 한 결과는 다음과 같습니다.
Bit rate : 9 999 Kbps
Width : 1 280 pixels
Height : 720 pixels
Display aspect ratio : 16:9
Rotation : 90°
Frame rate mode : Variable
Frame rate : 16.587 fps
Minimum frame rate : 14.985 fps
Maximum frame rate : 30.030 fps
단일 VFR 비디오 스트림의 재생은 어렵지 않습니다. 소프트웨어는 다음 프레임을 표시 할 준비가되며 표시 될 때까지 휴면 상태를 유지 한 다음 깨어나서 표시합니다.
사람이 모니터에 비디오 프레임을 표시 할 때만 비디오 프레임을 볼 수 있다는 사실을 고려하면 상황이 조금 더 복잡해집니다. VFR 모니터가 존재하지만 여전히 드물다. (g-sync freesync 용 Google).
모니터로 스캔되는 동안 표시된 이미지를 변경하면 비디오가 심하게 찢어집니다 (일반적으로 vsync를 끈 상태에서 게임을 할 때 나타남). 플레이어가 표시된 이미지를 50 또는 60Hz로 변경하도록 제한합니다. (CRT는 범위 내에서 임의의 vrefresh 속도를 지원하지만 모든 타이밍이 올바른 모드를 요리하는 것은 복잡하므로 대부분의 사람들은 고정 된 재생 빈도를 거의 사용하지 않았으며 이제는 고정 된 재생 빈도 만 지원하는 LCD가 있습니다. 어쨌든 freesync 모니터가 더 널리 퍼져 있습니다. 정말 기대하고 있습니다. :)
따라서 비디오 새로 고침 빈도의 배수 또는 요소가 아닌 비디오 프레임 속도의 경우 일부 프레임은 비디오가 일정한 25FPS를 유지하더라도 3 개의 모니터 새로 고침에 대해 표시되고 일부는 2에 대해 표시됩니다. (60Hz 모니터).
여러 클립을 사용하여 작업하거나 클립 간, PIP (Picture-in-Picture) 또는 기타 다양한 효과를 사용하려는 경우 상황이 더욱 복잡해집니다. 모든 클립에 동시에 새 프레임이 있다고 가정 할 수 있다면 비디오 편집 소프트웨어를 작성하는 것이 훨씬 쉽습니다. 클립 정렬을 강제로 전체 프레임에 맞 춥니 다.
그렇기 때문에 무작위 자유 소프트웨어 예제를 선택하기 위해 kdenlive 또는 pitivi와 같은 NLE가 고정 FPS로 강제하고 클립에서 해당 프레임 속도와 일치하도록 프레임을 드롭 / 복제 할 가능성이 높습니다. 선택한 CFR은 임의적 일 수 있지만 일반적으로 전체 "프로젝트"에 대해 일정해야합니다.
(NLE가 VFR 클립과 완벽하게 작동하고이 경우 VFR 출력을 생성합니까?)
요약하자면, 일단 가변 동기화 모니터와 OS가 있으면 비디오 편집 만 할 수 있습니다. 방송은 CFR이 그다지 중요하지 않기 때문에?
궁금한 점이 있다면 29.970 (실제로 30000/1001)과 23.976 (실제로는 24000/1001)이 아닌 정수가 아닌 프레임 속도는 컬러 NTSC의 결함입니다. 1.001을 검색하십시오 . 단지 일부 흑백 세트가 오디오 부반송파에 대해 추가로 0.1 %의 주파수를 처리 할 수없는 위험을 감수 할 수만 있다면 세계는이 말도 안되는 일을 피할 수있을 것입니다. (저는 많은 세트가 괜찮을 것 같은 소리를 낸 다른 기사를 보았지만 완벽한 컴 패트에 대해서는 확실하지 않았습니다. 사리.)
그러나 성가신 프레임 속도는 방송의 덜 죄 중 하나입니다. 현대 (모든 픽셀이 한 번에 불이 들어옴) 화면에서 비디오 품질이 떨어지는 인터레이스 방식으로 변경되지 않았습니다. 인터레이스가 왜 HDTV를 위해 유지되었는지는 알 수 없습니다. 스포츠와 물건에 동일한 시간 해상도를 얻기 위해 720p60을 사용하는 대신 1080i60을 정의한 이유는 무엇입니까? 1920x540p60과 비슷하지만 홀수 필드와 짝수 필드 사이의 어리석은 수직 오프셋으로 인해 수신 측에서 많은 계산이 필요하므로 끔찍하게 보이지 않습니다.
편집하다:
사용 사례의 경우 기본 FPS에 보관하는 것이 좋습니다. 프레임을 떨어 뜨려서 정보를 버리지 마십시오. 프레임을 이중화하거나 파일을 더 크게 만들지 마십시오 (또는 h.264 인코더가 중복을 인식하고 전체 프레임에 20 바이트 만 소요되는 건너 뛰기 매크로 블록으로 가득 찬 프레임을 출력하는 데 더 많은 시간을 소비하게하십시오).
앞으로 모든 프레임 속도를 재생할 수있는 프리 싱크 디스플레이가있는 경우 풀업을 24fps로 실행 취소하여 비디오를보다 부드럽게 재생할 수 있습니다. 또는 freesync가 어떻게 든 잡히지 않거나 LCD 다음에 나오는 디스플레이가 CFR 인 경우 어쨌든 재생 시간에 속도 변환이 가장 잘 수행됩니다. 24fps가 60Hz 모니터에서 완벽하게 재생되는 것과는 다릅니다. (나는 일부 프레임이 3 * 1/60으로 표시되고 일부는 2 * 1/60으로 표시된다는 사실을 시각적으로 알지 못하지만 사실입니다).
Quicktime에 문제가 있으면 IDK입니다. 핸드 브레이크가 컨테이너뿐만 아니라 h.264 비트 스트림에 올바른 프레임 속도로 파일을 작성하는지 확인하십시오. (예, h.264 헤더는 컨테이너와는 별도로 프레임 속도를 저장할 수 있습니다.에 대한 문서를 참조하십시오 mkvmerge --fix-bitstream-timing-information
. 함께 --default-duration 16fps
사용하여 mkv 파일을 만드십시오. 그런 다음 mp4로 다시 mux로 변환하여 빠른 시간이 수정되는지 확인하십시오. ) 또는 mp4 도구를 사용하여 처음에 할 수있는 방법이 있습니다. 예를 들어 /ubuntu/370692/how-to-change-the-framerate-of-a-video-without-reencoding을 참조하십시오.
임의의 프레임 속도 mp4가 유효하고 가변 프레임 속도 mp4도 유효하다는 것을 보장 할 수 있습니다. Quicktime이 잘못 재생하면 Quicktime의 결함 일 수 있습니다. 또는 파일을 잘못 만든 것에 대한 핸드 브레이크의 잘못 일 수도 있습니다. 나는 보통 커맨드 라인 닌자이기 때문에 ffmpeg를 직접 사용합니다.