Обнаружение сцен и постоянный размер GOP — адаптивная потоковая передача

Пример команды:

-map 0:0 -f mp4 -vcodec libx264 -preset slow -profile:v main -vf scale="640:trunc(ow/a/2)*2" -vb 700k -minrate 650k -maxrate 750k -bufsize 10000k -an -g 48 -x264opts keyint=48:min-keyint=10:scenecut=40 -flags +cgop -sc_threshold 40 -pix_fmt yuv420p -threads 0 -y

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

1) приведенная выше команда гарантирует, что диапазон размера GOP составляет {10,48}, и если какое-либо значение изменения сцены (от кадра 1 до кадра 2) составляет> 40%, то там вводится ключевой кадр?

2) Это означает, что через 3 часа исходного видео нет гарантии, что размер GOP останется прежним.

3) Нет, я создаю 7 файлов MP4, каждый с разным битрейтом и разрешением. (Эти Mp4 будут закодированы для сглаживания на более позднем этапе). Поэтому я ориентируюсь на адаптивную потоковую передачу. Но когда я это сделал, я обнаружил, что если размеры GOP не совпадают для каждого битрейта. Под этим я подразумеваю, например: если в Bitrate1 размер GOP равен 10, 20, 48 и т. д., то в других битрейтах он не был в той же последовательности. Надеюсь, мой вопрос имеет смысл.

Так есть ли способ гарантировать, что размер GOP может варьироваться для одного единственного вывода? Но он должен быть одинаковым для каждого битрейта при условии, что источник один и тот же?

Также для адаптивной потоковой передачи. Целесообразно ли обнаружение сцен?


person Tarun    schedule 24.03.2014    source источник


Ответы (1)


Вы правы в пунктах 1) и 2) НО в пункте 3) вы говорите, что меняете битрейт И разрешение видео. На самом деле при использовании x264 для ABR единственный способ сохранить все кодирование с использованием одной и той же структуры GOP (3 возможности):

  • только битрейт поменяй и все будет ок
  • используйте двухэтапный подход, запустите кодирование с --pass 1, с максимальным разрешением и битрейтом (я думаю, быстрее ...), запишите файл статистики, затем повторно используйте этот файл статистики для всех ваших разных битрейтов и разрешений через --pass 3
  • отключите обнаружение перехода сцены с помощью --scenecut -1 и закодируйте с фиксированным GOP.
person alexbuisson    schedule 24.03.2014