FFmpeg: проблемы с кодировщиком h264_qsv и crf

2469
KennyG1092

Я только что узнал о FFmpeg при записи геймплея на Bandicam с использованием кодека H.264 (Intel Quick Sync). К сожалению, одно из моих видео оказалось записанным в обертке AVI, и я хотел перекодировать его в MP4 в несколько без потерь

Причина, по которой я хочу сменить оболочки, заключается в том, что Adobe Premiere Pro CC 2017 почему-то плохо обрабатывает AVI, а при экспорте с использованием H.264 и MP4 в качестве оболочки все видео выглядит просто испорченным.

Итак, я беру FFmpeg и пытаюсь перекодировать мое видео с помощью следующей команды:

ffmpeg -i vid.avi -c:v h264_qsv -crf 10 -r 50 -c:a aac -b:a 192k -ac 2 vid.mp4 

Ошибка, которая появляется в желтом цвете:

Codec AVOption crf (Select the quality for constant quality mode) specified for output file #0 (vid.mp4) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.

Я вполне уверен, что H.264 (Intel Quick Sync) имеет поддержку CRF, или я могу быть очень не прав и перепутать H.264 (QSV) и libx264, которые, очевидно, поддерживают CRF.

Что-нибудь вокруг этого? У меня есть FFmpeg вер. 20170921-183fd30, 64-разрядная, статическая.

Изменить: Обходной путь должен вернуться к libx264 и запустить faster, veryfastили superfast, но я все еще хотел бы сэкономить немного времени с помощью Intel Quick Sync.

3

1 ответ на вопрос

4
Gyan

Кодировщик QSV не имеет параметра с именем CRF. Эквивалентный метод управления скоростью - LA_ICQ.

https://software.intel.com/en-us/articles/common-bitrate-control-methods-in-intel-media-sdk :

Регулятор скорости по умолчанию для x264 (стандартная реализация FFmpeg для h264) - CRF. Это позволяет колебаниям битрейта поддерживать целевой уровень качества. Media SDK ICQ и LA_ICQ - лучшее совпадение для этого класса алгоритмов.


Чтобы вызвать его, нужна команда вида:

ffmpeg -i in.mp4 -c:v h264_qsv -global_quality 10 -look_ahead 1 out.mp4 

look_aheadдолжно быть 1. global_qualityможет быть от 1 до 51. Чем ниже значение, тем лучше качество. ~ 25 должно быть эквивалентно x264 CRF 23.

Хорошо, спасибо. Для пояснения, настройка «global_quality» на 0 без потерь, похожа на 0 CRF в h.264 ??? KennyG1092 6 лет назад 0
Нет. Я не думаю, что этот кодировщик имеет режим без потерь. Gyan 6 лет назад 0

Похожие вопросы