ffmpeg에서 안정화와 압축을 어떤 순서로 사용해야 합니까?

ffmpeg에서 안정화와 압축을 어떤 순서로 사용해야 합니까?

나는 h264 압축으로 60fps HD로 녹화하는 Canon Vixia에서 축구 게임 비디오를 촬영합니다. 카메라에서는 7000k 및 60fps로 제한되는 비트 전송률의 h265를 사용하여 (저장 공간을 절약하고 업로드 속도를 높이기 위해) 재압축한 20GB 파일이 생성되는데, 이는 내 요구에 충분히 높은 품질입니다. 저는 AMD 그래픽 카드와 함께 hevc_amf 인코더를 사용하는데, 이는 1시간 20분 HD 비디오를 약 40m(2x)로 재압축하는데 매우 만족합니다.

최근에 나는 흔들리는 비디오를 꽤 멋지게 정리하는 vidstab을 사용하는 방법을 배웠습니다. 이제 보관하기 전에 vidstab으로 안정화하고 h265로 다시 압축하고 싶습니다. 나는 좋은 결과를 얻으면서 가장 효율적인 방식으로 작업 흐름의 순서를 지정하는 방법에 대한 몇 가지 권장 사항을 찾고 있습니다. 1) 먼저 원본 20G 파일(감지 및 변환 패스 모두)에서 vidstab을 수행해야 합니까? 아니면 2) 안정화를 수행하기 전에 하드웨어 가속 hevc_amf 인코더를 사용하여 다시 압축해야 합니까?

  1. 첫 번째 옵션인 경우 후속 질문입니다. 다음과 같이 vidstabtransform을 실행합니다.
ffmpeg.exe -i input.mp4 -vf vidstabtransform,unsharp=5:5:0.8:3:3:0.4 outputstabilized.mp4

이는 ffmpeg.org 문서에 따른 것입니다. 원래 30Mbps 정도였던 비트레이트를 10Mbps 정도로 변경한 것 같습니다. 왜 그런 겁니까? 이를 제어하고 원래 비트 전송률로 유지할 수 있나요? 내가해야합니까? (또한 언샵 마스크가 필요합니까? 안정화 기능에 고유한 확대/축소 기능이 있기 때문입니까?)

이 접근 방식의 단점은 h265를 사용하면 더 나은 압축을 얻을 수 있다는 것입니다.~ 후에픽셀의 움직임이 적어 안정화되지만 큰 차이는 아닐 수도 있습니다.

  1. 두 번째 옵션인 경우에도 안정화 출력의 비트 전송률을 제어할 수 있나요?

누구든지 추천할 만한 다른 워크플로가 있다면 저도 귀를 기울일 것입니다. (복잡한 필터맵을 사용하려고 생각했지만... 복잡해 보입니다. :) 그리고 그것들을 둘러볼 시간을 투자하지 않았습니다.)

미리 감사드립니다!

답변1

vidstabdetect원본 파일에 필터를 실행합니다 .

vidstabtransform원본 파일에도 필터를 실행 하되 HEVC 인코더를 사용하여 최종 출력을 생성합니다. 필터는 인코더보다 먼저 실행되므로 변환은 프레임을 인코더로 보내기 전에 원래 입력의 프레임을 안정화합니다.

관련 정보