У меня возникла следующая проблема.
Я использую ffmpeg для пакетного изменения размера/сжатия фотографий и видео в Windows 10. Я использовал версию 3, и после обновления до версии 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, вы, скорее всего, получите эту ошибку.
решение заключается в определении правильной версии кодека, как указано в ffmpeg. Для меня это было:
ffmpeg4.4 -i input.mp4 -codec:v h264_qsv output.mp4
Имейте в виду, что вы также можете получить другие сообщения об ошибках DLL, такие как
Cannot load nvcuda.dll
Все зависит от того, какой кодек вы будете использовать и на какой платформе вы работаете (Intel, AMD, NVIDIA). Помните также, что для кодирования вы можете использовать также эти кодеки, которые указаны как "кодировщик", например, libx264 в списке выше не сработал у меня для кодирования.