Поддержка FFmpeg WebM AV1

Как с FFmpeg использовать кодек AV1 в контейнере webm?

Я получаю сообщение об ошибке:

Only VP8 or VP9 video and Vorbis or Opus audio and WebVTT subtitles are supported for WebM.
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Error initializing output stream 0:0 --

Однако Википедия говорит, что WebM поддерживает AV1.

https://en.wikipedia.org/wiki/AV1

AV1 is intended to be able to be used together with the audio format Opus in a future version of the WebM container format for HTML5 web video

Или FFmpeg может просто не кодировать эту новую версию?


Мои настройки:

ffmpeg -y 

-i "C:\Users\Matt\video.mp4" 

-c:v libaom-av1 -strict experimental 
-cpu-used 1 -crf 28 
-pix_fmt yuv420p 
-map 0:v:0? -map_chapters -1 
-sn 

-c:a libopus 
-map 0:a:0? 

-map_metadata 0 

-f webm 

-threads 0 

"C:\Users\Matt\video.webm"

person Matt McManis    schedule 13.07.2018    source источник
comment
Если вы готовы использовать другие инструменты, кроме ffmpeg, вы можете попробовать mkvmerge (который, как я слышал, имеет экспериментальную поддержку AV1 в MKV/WebM). Но, как я упоминаю в своем ответе, битовый поток для AV1 в MKV/WebM еще не завершен, поэтому файлы, которые вы создаете сегодня, завтра могут оказаться недействительными.   -  person Cornstalks    schedule 13.07.2018


Ответы (1)


В настоящее время ffmpeg не поддерживает мультиплексирование AV1 в WebM. Вы получаете ошибку из этого кода:

if (mkv->mode == MODE_WEBM && !(par->codec_id == AV_CODEC_ID_VP8 ||
                                par->codec_id == AV_CODEC_ID_VP9 ||
                                par->codec_id == AV_CODEC_ID_OPUS ||
                                par->codec_id == AV_CODEC_ID_VORBIS ||
                                par->codec_id == AV_CODEC_ID_WEBVTT)) {
    av_log(s, AV_LOG_ERROR,
           "Only VP8 or VP9 video and Vorbis or Opus audio and WebVTT subtitles are supported for WebM.\n");
    return AVERROR(EINVAL);
}

Обратите внимание на отсутствие AV_CODEC_ID_AV1 в выражении.

Впрочем, это не слишком удивительно. AV1 в Matroska (и, следовательно, WebM) еще не доработан. Если вы хотите следить за ходом работы над AV1 в Matroska (и WebM), следите за обсуждением здесь, на список рассылки IETF CELLAR.

person Cornstalks    schedule 13.07.2018