공간을 확보하기 위해 비디오 라이브러리를 HEVC 형식으로 변환하려고합니다. 내 라이브러리의 모든 비디오 파일에서 다음 명령을 실행했습니다.
#!/bin/bash
for i in *.mp4;
do
#Output new files by prepending "X265" to the names
avconv -i "$i" -c:v libx265 -c:a copy X265_"$i"
done
이제 대부분의 비디오는 잘 변환되고 품질은 이전과 동일합니다. 그러나 매우 높은 품질의 비디오 (예 : 5GB의 동영상 인쇄)와 같은 일부 비디오는 품질이 떨어집니다. 비디오는 모두 픽셀 화됩니다.
이 경우 어떻게해야할지 모르겠습니다. crf
명령 행에서 매개 변수 를 수정해야 합니까? 또는 다른 것?
문제는 대량 변환을 수행하고 있다는 것입니다. 따라서 avconv
각 비디오에 대해 조정이 필요한 매개 변수를 자동으로 조정 하는 방법이 필요합니다 .
업데이트 -1
내가 crf
조정해야 할 손잡이라는 것을 알았습니다 . 기본 CRF는 28입니다. 더 나은 품질을 위해 28보다 작은 것을 사용할 수 있습니다. 예를 들면 다음과 같습니다.
avconv -i input.mp4 -c:v libx265 -x265-params crf=23 -c:a copy output.mp4
그러나 문제는 일부 비디오의 경우 CRF 값 28이 충분하고 일부 비디오의 경우 더 낮은 CRF가 필요하다는 것입니다. 이것은 큰 비디오의 작은 부분을 변환하여 수동으로 확인 해야하는 것입니다. 그러나 대량 변환에서 각 비디오를 수동으로 어떻게 확인합니까? avconv
입력 비디오에 따라 CRF를 지능적으로 조정할 수 있는 방법이 있습니까?
업데이트 -2
나는이 있음을 발견 --lossless
: x265의 옵션 http://x265.readthedocs.org/en/default/lossless.html .
그러나 올바르게 사용하는 방법을 모르겠습니다. 나는 그것을 다음과 같은 방식으로 사용하려고 시도했지만 반대 결과를 얻었습니다 (비디오는 훨씬 픽셀 화되었습니다).
avconv -i input.mp4 -c:v libx265 -x265-params lossless -c:a copy output.mp4
--lossless
파일이 이전에 손실 된 코덱을 디코딩 한 다음 손실없이 디코딩 한 작업을 포함하는 경우 실제로 파일을 확대 할 수 있습니다. 품질은 입력과 정확히 동일하게 유지됩니다.