다음과 같은 문제가 발생했습니다.
저는 ffmpeg를 사용하여 Windows 10에서 사진과 비디오의 크기를 일괄 조정/압축하고 있습니다. 버전 3을 사용했고 이후 ffmpeg 버전 4.4로 업그레이드한 후 출력 품질이 떨어졌습니다. 스크립트를 수정하고 출력 인코더를 명시적으로 정의해야 한다는 것을 알았습니다. 그러나 h264를 정의할 때 항상 이 오류가 발생했습니다.
DLL amfrt64.dll failed to open
답변1
제가 찾은 해결책도 알려드리고 싶습니다. ffmpeg(Windows 빌드)에는 컴파일된 h264 옵션이 거의 없는 것으로 보입니다. 이것 좀 봐:
ffmpeg.exe -encoders | find "264"
<cut>
V..... libx264 libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (codec h264)
V..... libx264rgb libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 RGB (codec h264)
V..... h264_amf AMD AMF H.264 Encoder (codec h264)
V..... h264_nvenc NVIDIA NVENC H.264 encoder (codec h264)
V..... h264_qsv H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (Intel Quick Sync Video acceleration) (codec h264)
V..... nvenc NVIDIA NVENC H.264 encoder (codec h264)
V..... nvenc_h264 NVIDIA NVENC H.264 encoder (codec h264)
따라서 "h264"만 입력하면 첫 번째로 나열된 옵션인 AMD용 옵션이 가정됩니다. AMD CPU를 실행하지 않는 경우 이 오류가 발생할 가능성이 높습니다.
해결책은 ffmpeg에 명명된 대로 올바른 코덱 버전을 정의하는 것입니다. 나에게는 다음과 같았다:
ffmpeg4.4 -i input.mp4 -codec:v h264_qsv output.mp4
다음과 같은 다른 DLL 오류 메시지도 나타날 수 있습니다.
Cannot load nvcuda.dll
그것은 모두 사용할 코덱 이름과 실행하는 플랫폼(Intel, AMD, NVIDIA)에 따라 다릅니다. 또한 인코딩의 경우 "인코더"로 나열된 이러한 코덱을 사용할 수도 있습니다. 예를 들어 위 목록의 libx264는 인코딩에 적합하지 않았습니다.