1

Я работаю над проектом, где мы объединяем видео сегменты HLS. Стандарт HLS удобно включать в себя директиву # EXT-X-DISCONTINUITY, сигнализирующую, что проигрыватель должен быть готов к видео с другим SPS или PPS (изменение в кодированном разрешении гарантировало бы вам такую необходимость).

На яблочном iPad смешанные потоки играют нормально.

К сожалению, часть оборудования, на которую мы нацелены, не может реализовать эту часть спецификации HLS. Мы определили, что оба клипа могут воспроизводиться на устройстве независимо, но когда они являются частью одного и того же потока HLS, устройство работает со сбоями (отказывается воспроизводить любой из вторичных клипов и возобновляет рендеринг после того, как оно возвращается на носитель с основного клип).

Сейчас мы рассматриваем перекодирование одного из клипов, чтобы оно соответствовало тому, которое мы имеем под меньшим контролем. Я уже смог настроить профиль и уровень, используя ответ в разделе Как установить уровень профиля h.264 с помощью ffmpeg?

Теперь мне нужно согласовать log2_max_frame_num_minus4. Как мне сказать ffmpeg использовать 5 для этого значения?

1 ответ1

1

Ты не можешь Для этого вам придется перепрограммировать x264 (кодировщик H.264).

Вы действительно должны зайти в исходный код (encoder/set.c) и жестко его закодировать, поскольку я не верю, что он когда-либо был предназначен для кого-либо, чтобы установить это значение.

Или вы вручную фиксируете байты в SPS, соответствующие этому значению, рискуя нарушить синтаксис H.264 (потому что другие параметры зависят от этого значения, конечно).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .