Ок. Вот что пока мне известно:
[h264 @ 0x7e4600] non-existing PPS 0 referenced
[h264 @ 0x7e4600] decode_slice_header error
[h264 @ 0x7e4600] no frame!
Это означает, что ffmpeg еще не видел ключевой кадр, который содержит информацию SPS и PPS. SPS и PPS имеют решающее значение для декодирования входящего кадра / среза. Ключевые кадры отправляются периодически (то есть каждые 5-10 секунд или более); так что если окажется, что вы присоединились к потоку до появления ключевого кадра; вы увидите это предупреждение для каждого кадра, пока не появится ключевой кадр.
Как только появится ключевой кадр, у ffmpeg будет достаточно информации для декодирования этого кадра (и любых последующих кадров до следующего ключевого кадра), и предупреждения исчезнут.
[h264 @ 0x14da960] reference picture missing during reorder
[h264 @ 0x14da960] Missing reference picture, default is 2147483647
[h264 @ 0x1595380] mmco: unref short failure
Last message repeated 1 times
[h264 @ 0x1595380] number of reference frames (0+5) exceeds max (4; probably corrupt input), discarding one
Из описания похоже что, он ожидает "справочный" кадр, а потом их прилетает куча, когда уже опоздал, поэтому один кадр просто выбрасывает.
[mpegts @ 0x35f85a0] PES packet size mismatch
Переведенный
комментарий из интернета:
Все вещатели, которых я знаю, устанавливают PES length до нуля для видеопотоков H264, потому что длина PES составляет 16-битное значение с максимальным 65535 байт (старый стандарт для видео MPEG2). Это слишком мало для большинства пакетов PES H264, поэтому его нужно установить на ноль (любая длина).
Почитать про PES
здесь.
PES Длина пакета в Заголовке пакета PES (2 байта) Задает количество оставшихся байтов в пакете после этого поля. Может быть нулевым. Если длина пакета PES установлена равной нулю, пакет PES может иметь любую длину. Значение нуля для длины пакета PES может использоваться только тогда, когда полезная нагрузка пакета PES является видеоэлементарным потоком.