4 : 3 동영상의 해상도는 720x480입니다.

동영상 편집 및 인코딩을 수행하려고했습니다. 4:3 가로 세로 비율이어야하는 소위 SD 동영상이 있습니다. 그러나 640x480 대신 720x480입니다. 흥미롭게도 미디어 플레이어로 재생할 때 640x480가 표시됩니다. 720x480로 재생되지 않습니다!

무슨 일이야?! 어떻게 가능할까요?

Answer

525/60 Rec. 601은 실제로 폭이 720 픽셀이고 높이가 480 픽셀이며 측면의 일부 공백을 포함합니다. 625/50에 해당하는 디지털은 720x576입니다. 두 경우 모두 프레임 종횡비는 4 : 3이며 이는 단순히 픽셀이 정사각형이 아님을 의미합니다. https://en.wikipedia.org/wiki/D-1_(Sony)

를 참조하세요.

문제를 더 복잡하게 만들려면 프레임의 하위 집합에만 4 개의 : 3 비율. 704×480 (525/60의 경우)과 704×576 (625/50의 경우) 만 4 : 3 비율을 가지고 있다고 생각합니다. 여기에서 토론을 참조하세요. https://lurkertech.com/lg/video-systems/

따라서 480 픽셀은 비율이 10/11입니다. 576 픽셀의 비율은 59/54입니다. 또한 여기를 참조하십시오. https://en.wikipedia.org/wiki/Pixel_aspect_ratio 그리고 480 줄과 576 줄 형식 모두 와이드 스크린 (16 : 9)이지만 라인 당 픽셀 수가 동일합니다! 또한 59/54와 같은 숫자는 작업하기가 쉽지 않습니다. 이로 인해 576 라인 형식의 픽셀 종횡비는 4 : 3 화면 종횡비의 경우 12/11, 16 : 9의 경우 16/11로 선택되었습니다.

정사각형 픽셀이 표준이되었습니다. VGA 비디오 어댑터에서 시작하여 720 라인 및 1080 라인 비디오에 대한 HD 사양에서 시작합니다. 그건 그렇고, 1440×1080 또는 960x720을 기록하지만 16 : 9 프레임 종횡비를 갖는 일부 HD 형식이 있으며 정사각형이 아닌 픽셀도 있습니다. 정사각형 픽셀은 비교적 최근에 개발 된 것으로 자동으로 예상되지 않습니다.

댓글

  • 설명해 주셔서 감사합니다. 저는 ' 몇 가지 실험을 위해 FFmpeg를 가지고 놀았습니다 (두 가지의 장면 절단 길이가 동일한 지 확인하기 위해). 따라서 재생이 동일하므로 ffmpeg에서 640x480과 720x480이 동일하다고 가정해야합니까?!
  • ffmpeg (ffplay 아님)는 비디오를 디스플레이 종횡비이므로 필터와 인코더는 래스터 데이터 (귀하의 경우 720×480)에서만 작동합니다.
  • 정사각형이 아닌 픽셀은 아마도 비디오를 다시 샘플링해야 할 것입니다. 문제를 해결하기 위해 인류에게 알려진 트랜스 코딩입니다.

답변

두 가지가 있습니다.

  • 프레임의 실제 너비 및 높이 (픽셀 단위)-다음 그림의 녹색 부분을 참조하십시오.
  • 표시된 너비와 높이 (재생 중)-동일한 사진의 파란색 부분을 참조하세요.

이전 문제는 장치의 해상도 (이미지의 픽셀 수)는 매우 낮았지만 재생에 필요한 너비와 높이의 비율은 4 : 3이었습니다.

해결책 (in 그 당시)는 비 정사각형 픽셀


간단 함을 위해 (이론적으로) 매우 낮은 치수를 가정 해 보겠습니다.

  • 필수 : 4 x 3 픽셀 (i. 이자형. 프레임 당 12 픽셀)
  • 실제 가능 (허용 가능한 가격) : 3 x 3 (예 : 9 픽셀)

해결책은 픽셀 종횡비 ( PAR ) 4 : 3 , 다음과 같습니다.

여기에 이미지 설명 입력

따라서 픽셀 종횡비 ( PAR )는 모든 개별 픽셀 의 크기 비율입니다.

모두 파란색 이미지의 픽셀에는 PAR 4 : 3이 있고 모든 주황색과 녹색에는 PAR 1 : 1.

이제 전체 (파란색) 이미지가 원하는대로 올바르게 표시됩니다. e. 지. 12cm x 9cm-따라서 디스플레이 종횡비 ( DAR ) 는 12 : 9입니다. , 또는 4 : 3.

에도 불구하고 3 x 3 픽셀로 저장됩니다. 따라서 저장소 종횡비 ( SAR ) 3 픽셀 : 3 픽셀 또는 1 : 1입니다.

힌트 :

  • 픽셀 종횡비 ( PAR )는 마이크로 미터 : 마이크로 미터
  • 디스플레이 종횡비 ( DAR )는 센티미터 : 센티미터
  • 스토리지 종횡비 ( SAR )는 픽셀 : 픽셀

결과적으로 이 3 개의 값은

     

                  DAR = SAR × PAR

중요 사항 :

때로는 PAR (픽셀 가로 세로 비율) : 샘플 가로 세로 비율 FFmpeg . 당연히 그 약어는 SAR 입니다. 이것은 매우 혼란 스럽습니다. 왜냐하면-우리가 본 것처럼-그것도 Storage Aspect ratio의 약자입니다.


주요 문제 :

요즘 모든 기기의 픽셀 가로 세로 비율은 1 : 1 (정사각형 픽셀)이며 주로 소형 장치 (휴대폰, 태블릿)를위한 많은 미디어 플레이어가이 장치에 의존하며에 저장된 DAR 값을 완전히 무시합니다. 비디오 스트림.

따라서 동일한 비디오 (모든 소스에서 생성됨)가 데스크톱이나 노트북 컴퓨터에서는 올바르게 재생되지만 스마트 폰에서는 잘못 (좁아짐) 재생되는 상황이 발생할 수 있습니다. 동일한 컴퓨터 또는 장치의 다른 미디어 플레이어.

이 예에서 프레임이 정사각형으로 잘못 표시 될 수 있습니다 (위 이미지의 녹색 부분 참조).


FFmpeg에서이 문제의 해결 방법 :

  • 문제가있는 동영상의 크기를 조정 한 다음
  • s 및 SAR 를 1로,
  • DAR 에 올바른 값이있을 가능성이 높지만 확실하게 설정할 수 있습니다.

(비현실적인) 예에서 필터 그래프를 사용할 수 있습니다.

-vf scale=4:3,setsar=1,setdar=w/h 

여기서 w는 픽셀 단위의 (축척 된) 프레임, h는 높이입니다. FFmpeg는 적절한 값을 자동으로 대체합니다.

결과는 위 이미지의 주황색 부분이됩니다.


귀하의 경우 귀하의 동영상은 다음과 같습니다. p>

  • DAR 4 : 3 (640 : 480),
  • SAR (스토리지 종횡비) 720 : 480 = 3 : 2, 결과적으로-
  • PAR = DAR / SAR = 8 : 9. (FFmpeg 용어로는 SAR -샘플 가로 세로 비율입니다.)

따라서 미디어 플레이어가 DAR 값을 무시하는 문제를 방지하려면 (그리고 720 : 480 비율로 재생하려면 다음을 고려하십시오. 다음 명령을 사용하여 변환하십시오.

ffmpeg -i your_input_file -vf -scale=640:480,setsar=1 -c:a copy your_output_file 

정사각형이 아닌 픽셀이있는 그림의 문제 :

사진의 경우 상황은 훨씬 더 나빠집니다.

거의 모든 사진 뷰어 / 편집자 및 인터넷 브라우저는 단순히 이미지를 무시합니다. SAR DAR 전 세계의 사진은 SAR 1 : 1입니다.

유명한 예외는 (흥미롭게도 그리고 놀랍게도) Microsoft Windows Photo Viewer, 모든 사진을 정확하게 표시합니다. ctly.

당신은 그것을 확신 할 수 있습니다. e. 지. 픽셀 종횡비 산성 테스트 에 의해-9 개의 사진이 모두 브라우저에 올바르게 표시되어야하지만-가능성이 매우 높습니다.

댓글

  • 잘 설명되어 있습니다. 감사합니다. 둘 다 맞습니다. 업 수가 증가하면 우수 답변을 업데이트합니다.

답글 남기기

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