Decode slice header error

I am getting the following errors when decoding H.264 frames received from the remote end of a H.264 based SIP video call. Appreciate any help in understanding there errors. non-existing PPS 0

I am getting the following errors when decoding H.264 frames received from the remote end of a H.264 based SIP video call. Appreciate any help in understanding there errors.

non-existing PPS 0 referenced
decode_slice_header error
non-existing PPS 0 referenced
decode_slice_header error
no frame!

non-existing PPS 0 referenced
decode_slice_header error
non-existing PPS 0 referenced
decode_slice_header error
no frame!

asked Feb 21, 2013 at 15:01

John Qualis's user avatar

John QualisJohn Qualis

1,6034 gold badges32 silver badges52 bronze badges

That just means that ffmpeg has not seen a keyframe yet, which carries SPS and PPS information. SPS and PPS are crucial in decoding an incoming frame/slice. Keyframes are sent periodically (i.e. every 5-10 seconds or more); so if it turns out that you joined a stream before the keyframe arrived; you will see this warning for every frame until a keyframe shows up.

As soon as the keyframe shows up from the wire, ffmpeg will have enough information to decode that frame (and any subsequent frames until the next keyframe), so those warnings will go away.

Alexis Wilke's user avatar

Alexis Wilke

18.4k10 gold badges80 silver badges146 bronze badges

answered Feb 21, 2013 at 20:08

Aki's user avatar

AkiAki

3,6292 gold badges29 silver badges37 bronze badges

7

You need to add frames sps and pps information. ffmpeg needs these frames to decode. You can find these values in the SDP file.

In the SDP file, you should look for NAL units, you can see something like that:

z0IAHukCwS1xIADbugAzf5GdyGQl, aM4xUg

these values, base64 encoded, should be converted to binary. I am using wireshark and wireshark converts these values automatically for you. After that you have sps and pps values.

Now you have to add these NAL blocks before the data frame:

00 00 00 01 sps 00 00 00 01 pps 00 00 00 01 data 

for h264 these block is what I have been using to decode.

Alexis Wilke's user avatar

Alexis Wilke

18.4k10 gold badges80 silver badges146 bronze badges

answered Aug 11, 2015 at 6:53

Sirdavos's user avatar

0

To decode a frame or a slice, sliceHeader is decoded, which refers to a PPS or «Picture Parameter Set». It has information regarding the specifics of the frame like width, height etc.

I guess your data is coming through a streaming input channel, in which case SPS and PPS would have been sent earlier in the stream.

You may have to concatenate the same to your stream.

answered Feb 21, 2013 at 16:32

Ganesh's user avatar

GaneshGanesh

5,8602 gold badges36 silver badges54 bronze badges

Содержание

  1. H264 raw files and decode_slice_header error
  2. Описание
  3. «H264 decode_slice_header error» in long time #819
  4. Comments
  5. Footer
  6. Ошибки при декодировании кадров H.264 с использованием ffmpeg
  7. ОТВЕТЫ
  8. Ответ 1
  9. Ответ 2
  10. Ответ 3
  11. Как исправить ошибки ffmpeg?
  12. Possible regression for h264 decoding
  13. Описание
  14. Вложения (1)
  15. История изменений (14)
  16. by werner , 9 лет ago
  17. comment:1 by Carl Eugen Hoyos , 9 лет ago
  18. comment:2 by Carl Eugen Hoyos , 9 лет ago
  19. следующий: 4 comment:3 by werner , 9 лет ago
  20. in reply to: 3 comment:4 by Carl Eugen Hoyos , 9 лет ago
  21. comment:5 by Carl Eugen Hoyos , 9 лет ago
  22. следующий: 7 comment:6 by werner , 9 лет ago
  23. in reply to: 6 comment:7 by Carl Eugen Hoyos , 9 лет ago
  24. comment:8 by werner , 9 лет ago
  25. comment:9 by Carl Eugen Hoyos , 9 лет ago
  26. comment:10 by Carl Eugen Hoyos , 9 лет ago
  27. следующий: 12 comment:11 by werner , 9 лет ago
  28. in reply to: 11 comment:12 by Carl Eugen Hoyos , 9 лет ago

H264 raw files and decode_slice_header error

Сообщил: fedech Владелец:
Приоритет: important Компонент: avcodec
Версия: 1.0.6 Ключевые слова: h264 regression
Копия: Blocked By:
Blocking: Reproduced by developer: да
Analyzed by developer: нет

Описание

Hello, I have a problem with raw .h264 files and ffmpeg 1.0 (everything works in 0.8 on another machine): when I try to convert them to mp4 or play them in ffplay I get a ton of errors (reproduced below), but mplayer plays them fine. I used some of the files from ​ http://www2.tkn.tu-berlin.de/research/evalvid/cif.html
How to reproduce:

I copied here the first lines of the CL output, the complete log is in the attachment:

[h264 @ 0x24c3100] brainfart cropping not supported, cropping disabled (right: 1, bottom: 87)

[h264 @ 0x24c3100] top block unavailable for requested intra4x4 mode -1 at 0 0
[h264 @ 0x24c3100] error while decoding MB 0 0, bytestream (69249)
[h264 @ 0x24c3100] concealing 24 DC, 24 AC, 24 MV errors in I frame
[h264 @ 0x24c3100] QP 5738 out of range
[h264 @ 0x24c3100] decode_slice_header error
[h264 @ 0x24c3100] concealing 24 DC, 24 AC, 24 MV errors in P frame
[h264 @ 0x24c3100] QP 9834 out of range
[h264 @ 0x24c3100] decode_slice_header error
[h264 @ 0x24c3100] concealing 24 DC, 24 AC, 24 MV errors in P frame
[h264 @ 0x24c3100] deblocking_filter_idc 32 out of range
[h264 @ 0x24c3100] decode_slice_header error
[h264 @ 0x24c3100] concealing 24 DC, 24 AC, 24 MV errors in P frame
[h264 @ 0x24c3100] illegal memory management control operation 32
[h264 @ 0x24c3100] illegal short term buffer state detected
[h264 @ 0x24c3100] cabac_init_idc overflow
[h264 @ 0x24c3100] decode_slice_header error
[h264 @ 0x24c3100] mmco: unref short failure
[h264 @ 0x24c3100] number of reference frames (1+1) exceeds max (0; probably corrupt input), discarding one
[h264 @ 0x24c3100] concealing 24 DC, 24 AC, 24 MV errors in P frame
[h264 @ 0x24c3100] cabac_init_idc overflow
[h264 @ 0x24c3100] decode_slice_header error
[h264 @ 0x24c3100] number of reference frames (1+1) exceeds max (0; probably corrupt input), discarding one
[h264 @ 0x24c3100] concealing 24 DC, 24 AC, 24 MV errors in P frame
[h264 @ 0x24c3100] QP 3789 out of range
[h264 @ 0x24c3100] decode_slice_header error
[h264 @ 0x24c3100] number of reference frames (1+1) exceeds max (0; probably corrupt input), discarding one
[h264 @ 0x24c3100] concealing 24 DC, 24 AC, 24 MV errors in P frame
[h264 @ 0x24c3100] illegal reordering_of_pic_nums_idc
[h264 @ 0x24c3100] decode_slice_header error
[h264 @ 0x24c3100] number of reference frames (1+1) exceeds max (0; probably corrupt input), discarding one
[h264 @ 0x24c3100] concealing 24 DC, 24 AC, 24 MV errors in P frame
[h264 @ 0x24c3100] cabac_init_idc overflow
[h264 @ 0x24c3100] decode_slice_header error
[h264 @ 0x24c3100] number of reference frames (1+1) exceeds max (0; probably corrupt input), discarding one
[h264 @ 0x24c3100] concealing 24 DC, 24 AC, 24 MV errors in P frame
[h264 @ 0x24c3100] abs_diff_pic_num overflow
[h264 @ 0x24c3100] decode_slice_header error
[h264 @ 0x24c3100] number of reference frames (1+1) exceeds max (0; probably corrupt input), discarding one
[h264 @ 0x24c3100] concealing 24 DC, 24 AC, 24 MV errors in P frame
[h264 @ 0x24c3100] long_term_pic_idx overflow
[h264 @ 0x24c3100] decode_slice_header error
[h264 @ 0x24c3100] number of reference frames (1+1) exceeds max (0; probably corrupt input), discarding one
[h264 @ 0x24c3100] concealing 24 DC, 24 AC, 24 MV errors in P frame
[h264 @ 0x24c3100] abs_diff_pic_num overflow

Источник

I’m not sure this is baresip’s issue. But I need some help.
My PBX is Asterisk 16.5. Two Baresip 0.6.3 one callerid 208, other 209.
I make video call in local LAN work well. But when I setup one baresip behide NAT (router with DMZ), like this :

baresip208 asterisk Cisco Router with DMZ baresip209.
192.168.1.4 192.168.1.14 192.168.1.13 192.168.9.1 192.168.9.2
When I make a call from 209 to 208. Everything OK.
But, When I make a call from 208 to 209, 209 answer that call, 208’s debug output like this
«[h264 @ 0xffff88103000] decode_slice_header error
[h264 @ 0xffff88103000] Frame num change from 14 to 4″

very much and very long time. After that, 208’s display not smooth. 209 work well.

Can you help me any suggetion to fix this error? Why h264 slide header in this case while work well in local LAN?

The text was updated successfully, but these errors were encountered:

Mmmh maybe one of your network devices does packet reordering in one path?

What about this log?

main: long async blocking: 337>100 ms (h=0xffffab2a7728 arg=0xffff88ea3c60)
[h264 @ 0xffff88103000] non-existing PPS 0 referenceds) efps=20.6/0.0
[h264 @ 0xffff88103000] decode_slice_header error
[h264 @ 0xffff88103000] non-existing PPS 0 referenced
[h264 @ 0xffff88103000] decode_slice_header error
[h264 @ 0xffff88103000] non-existing PPS 0 referenced
[h264 @ 0xffff88103000] decode_slice_header error
[h264 @ 0xffff88103000] non-existing PPS 0 referenced
[h264 @ 0xffff88103000] decode_slice_header error
[h264 @ 0xffff88103000] non-existing PPS 0 referenced
[h264 @ 0xffff88103000] decode_slice_header error
[h264 @ 0xffff88103000] non-existing PPS 0 referenced
[h264 @ 0xffff88103000] decode_slice_header error
[h264 @ 0xffff88103000] non-existing PPS 0 referenced
[h264 @ 0xffff88103000] decode_slice_header error
[h264 @ 0xffff88103000] non-existing PPS 0 referenced
[h264 @ 0xffff88103000] decode_slice_header error
[h264 @ 0xffff88103000] no frame!
avcodec: avcodec_send_packet error, packet=7062 bytes, ret=-1094995529 (Invalid data found when processing input)

most likely the first keyframe was dropped.

try to run baresip with -v and keep the call up until the next keyframe arrives
(the H.264 keyframes are sent at a regular interval around 10-60 seconds).

When I return to H264, I will post baresip log with -v parameter.
I’m using VP9, it’s worked. I think quantity of H264 same VP9, not VP8. VP8 so bad. I need any advice for improve video quantity.
And, do you try DTLS_SRTP with Kamailio?

can you please create a new ticket for the VP8 problem, remember to include
build information, logs, wireshark traces and also screen captures so that we
can see what «bad quality» means.

I will, wait me few hours.

Sorry for later new ticket about VP8. I will return when I complete my jobs. I’m using VP9, and it work well. Now, I trying to work with DTLS_SRTP, I have some issue, and I need help in other ticket.

then please close this ticket, and create a new one for your next problem.

(one ticket per problem please.)

© 2023 GitHub, Inc.

You can’t perform that action at this time.

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

Источник

Ошибки при декодировании кадров H.264 с использованием ffmpeg

Я получаю следующие ошибки при декодировании кадров H.264, полученных с удаленного конца видеовызова SIP на основе H.264. Оцените любую помощь в понимании ошибок.

ОТВЕТЫ

Ответ 1

Это означает, что ffmpeg еще не видел ключевой кадр, который содержит информацию SPS и PPS. SPS и PPS имеют решающее значение для декодирования входящего кадра/среза. Ключевые кадры отправляются периодически (то есть каждые 5-10 секунд или более); так что если окажется, что вы присоединились к потоку до появления ключевого кадра; вы увидите это предупреждение для каждого кадра, пока не появится ключевой кадр.

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

Ответ 2

Для декодирования кадра или фрагмента декодируется sliceHeader , который относится к PPS или «Набор параметров изображения». Он содержит информацию о специфике рамки, такой как ширина, высота и т.д.

Я думаю, ваши данные поступают через потоковый входной канал, и в этом случае SPS и PPS были бы отправлены ранее в потоке.

Возможно, вам придется объединить то же самое с вашим потоком.

Ответ 3

вам нужно добавить фреймы sps и pps. ffmpeg нуждается в этой информации для декодирования. Эти значения можно найти в SDP файле.

В SDP файле вы должны посмотреть NAL-единицы, вы можете увидеть что-то вроде этого z0IAHukCwS1xIADbugAzf5GdyGQl, aM4xUg

эти значения на основе64 кодируются, вы должны преобразовать его в шестнадцатеричный формат. Я использую wirehark, и wirehark преобразует эти значения для вас. После этого вы получите значения sps и pps.

Теперь вам нужно добавить эти данные Nal перед фреймом данных.

00 00 00 01 sps 00 00 00 01 pps 00 00 00 01 данные

для h264 этот формат, который я использовал для декодирования.

Источник

Как исправить ошибки ffmpeg?

Запускаю ffmpeg такой строкой:

проблема том, когда входящий поток в HD качестве и для его загрузки требуется 8-11 Мб/с, ffmpeg выкидывает кучу ошибок и стрим тормозит и лагает, вот некоторые ошибки из консоли:

Вот параметры входного потока:

При этом нагрузка на CPU 35-40%, то есть сервер не перегружен.
Сервер Ubuntu 14.04
Скорость интернета 70-80 Мб/с.
В чем проблема не пойму, если входящий поток не HD качества и для его загрузки требуется 3-5 Мб/с, то все нормально работает, ошибок нету, ничего не тормозит.

  • Вопрос задан более трёх лет назад
  • 6466 просмотров

Ок. Вот что пока мне известно:

Это означает, что ffmpeg еще не видел ключевой кадр, который содержит информацию SPS и PPS. SPS и PPS имеют решающее значение для декодирования входящего кадра / среза. Ключевые кадры отправляются периодически (то есть каждые 5-10 секунд или более); так что если окажется, что вы присоединились к потоку до появления ключевого кадра; вы увидите это предупреждение для каждого кадра, пока не появится ключевой кадр.

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

Из описания похоже что, он ожидает «справочный» кадр, а потом их прилетает куча, когда уже опоздал, поэтому один кадр просто выбрасывает.

[mpegts @ 0x35f85a0] PES packet size mismatch

Все вещатели, которых я знаю, устанавливают PES length до нуля для видеопотоков H264, потому что длина PES составляет 16-битное значение с максимальным 65535 байт (старый стандарт для видео MPEG2). Это слишком мало для большинства пакетов PES H264, поэтому его нужно установить на ноль (любая длина).

Почитать про PES здесь.

PES Длина пакета в Заголовке пакета PES (2 байта) Задает количество оставшихся байтов в пакете после этого поля. Может быть нулевым. Если длина пакета PES установлена ​​равной нулю, пакет PES может иметь любую длину. Значение нуля для длины пакета PES может использоваться только тогда, когда полезная нагрузка пакета PES является видеоэлементарным потоком.

Источник

Possible regression for h264 decoding

Сообщил: werner Владелец:
Приоритет: important Компонент: avcodec
Версия: git-master Ключевые слова: h264 regression
Копия: Blocked By:
Blocking: Reproduced by developer: да
Analyzed by developer: нет

Описание

Summary of the bug: Using 0.8.x, I am able to produce a working file from the attached sample. Using 2.0.1, all I get is a static image.
How to reproduce:

But as I said, the file is unusable.

Вложения (1)

Download all attachments as: .zip

История изменений (14)

by werner , 9 лет ago

To make this a valid ticket, please provide the complete, uncut console output.

And please test current git head.

Версия: 2.0.1 → git-master
Ключевые слова: h264 added
Приоритет: normal → important

Sorry, I cut it cause it was much of the same. The video is a sample capture from a stream that we can’t control, so it has a bunch of errors/is simply old.

I will try out the git head, and as a side note this has been a problem since I think about 0.11.x. We tried upgrading back then, but couldn’t because of this issue. I don’t think anyone reported it back then.

Ключевые слова: regression added
Компонент: undetermined → avcodec

Sorry, I cut it cause it was much of the same.

But you did not just cut «the same» (this would of course have been ok and very welcome, I just don’t suggest it because it seems more difficult than simply to provide the whole console output).

Workaround is to use -flags2 showall

I don’t know if the stream is broken or if the decoder is at fault, the reference decoder does not like the sample though.

Краткое описание: Possible regression for mpegts decoding → Possible regression for h264 decoding

Thank you for the workaround. I noticed something else interesting though, if I pass in an output format for h264 instead of just passing through the data, it doesn’t play; however, if I specify mp4 it does. Do you know why that would be since it uses the same encoder?

Thank you for the workaround. I noticed something else interesting though, if I pass in an output format for h264 instead of just passing through the data, it doesn’t play; however, if I specify mp4 it does.

Command line(s) and console output missing.
(Sorry, I honestly do not understand.)

Sorry, I should have included them.
Works:

Output for the third command:

Please RTFM to find out what -f means.

And please elaborate on «Doesn’t work», it appears to 1260 frames are successfully encoded.

Ok so -f should be -c:v. Switching it up does produce the desired results. Sorry for my limited understanding of the command line, I don’t use it (normally utilizing the libraries underneath instead). I am playing around with the command line as I am just trying to understand what, if any, the limitations are to upgrading.

So it seems that transcoding it works fine, but copy does not:

Given your last response, I took the time to try and verify if there were any other issues with the command I was running or if there was any obvious flags I could apply, but nothing stuck out at me.

So it seems that transcoding it works fine, but copy does not:

But this is not a regression or do you disagree?

Источник

#2393

closed


defect


(fixed)

Reported by: Owned by:
Priority: important Component: avcodec
Version: 1.0.6 Keywords: h264 regression
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Hello, I have a problem with raw .h264 files and ffmpeg 1.0 (everything works in 0.8 on another machine): when I try to convert them to mp4 or play them in ffplay I get a ton of errors (reproduced below), but mplayer plays them fine. I used some of the files from http://www2.tkn.tu-berlin.de/research/evalvid/cif.html
How to reproduce:

% ffmpeg -i highway_cif.264 
ffmpeg version 1.0
built on Linux Mint Debian Edition (Debian testing repos)

I copied here the first lines of the CL output, the complete log is in the attachment:

[h264 @ 0x24c3100] brainfart cropping not supported, cropping disabled (right: 1, bottom: 87)

Last message repeated 1 times

[h264 @ 0x24c3100] top block unavailable for requested intra4x4 mode -1 at 0 0
[h264 @ 0x24c3100] error while decoding MB 0 0, bytestream (69249)
[h264 @ 0x24c3100] concealing 24 DC, 24 AC, 24 MV errors in I frame
[h264 @ 0x24c3100] QP 5738 out of range
[h264 @ 0x24c3100] decode_slice_header error
[h264 @ 0x24c3100] concealing 24 DC, 24 AC, 24 MV errors in P frame
[h264 @ 0x24c3100] QP 9834 out of range
[h264 @ 0x24c3100] decode_slice_header error
[h264 @ 0x24c3100] concealing 24 DC, 24 AC, 24 MV errors in P frame
[h264 @ 0x24c3100] deblocking_filter_idc 32 out of range
[h264 @ 0x24c3100] decode_slice_header error
[h264 @ 0x24c3100] concealing 24 DC, 24 AC, 24 MV errors in P frame
[h264 @ 0x24c3100] illegal memory management control operation 32
[h264 @ 0x24c3100] illegal short term buffer state detected
[h264 @ 0x24c3100] cabac_init_idc overflow
[h264 @ 0x24c3100] decode_slice_header error
[h264 @ 0x24c3100] mmco: unref short failure
[h264 @ 0x24c3100] number of reference frames (1+1) exceeds max (0; probably corrupt input), discarding one
[h264 @ 0x24c3100] concealing 24 DC, 24 AC, 24 MV errors in P frame
[h264 @ 0x24c3100] cabac_init_idc overflow
[h264 @ 0x24c3100] decode_slice_header error
[h264 @ 0x24c3100] number of reference frames (1+1) exceeds max (0; probably corrupt input), discarding one
[h264 @ 0x24c3100] concealing 24 DC, 24 AC, 24 MV errors in P frame
[h264 @ 0x24c3100] QP 3789 out of range
[h264 @ 0x24c3100] decode_slice_header error
[h264 @ 0x24c3100] number of reference frames (1+1) exceeds max (0; probably corrupt input), discarding one
[h264 @ 0x24c3100] concealing 24 DC, 24 AC, 24 MV errors in P frame
[h264 @ 0x24c3100] illegal reordering_of_pic_nums_idc
[h264 @ 0x24c3100] decode_slice_header error
[h264 @ 0x24c3100] number of reference frames (1+1) exceeds max (0; probably corrupt input), discarding one
[h264 @ 0x24c3100] concealing 24 DC, 24 AC, 24 MV errors in P frame
[h264 @ 0x24c3100] cabac_init_idc overflow
[h264 @ 0x24c3100] decode_slice_header error
[h264 @ 0x24c3100] number of reference frames (1+1) exceeds max (0; probably corrupt input), discarding one
[h264 @ 0x24c3100] concealing 24 DC, 24 AC, 24 MV errors in P frame
[h264 @ 0x24c3100] abs_diff_pic_num overflow
[h264 @ 0x24c3100] decode_slice_header error
[h264 @ 0x24c3100] number of reference frames (1+1) exceeds max (0; probably corrupt input), discarding one
[h264 @ 0x24c3100] concealing 24 DC, 24 AC, 24 MV errors in P frame
[h264 @ 0x24c3100] long_term_pic_idx overflow
[h264 @ 0x24c3100] decode_slice_header error
[h264 @ 0x24c3100] number of reference frames (1+1) exceeds max (0; probably corrupt input), discarding one
[h264 @ 0x24c3100] concealing 24 DC, 24 AC, 24 MV errors in P frame
[h264 @ 0x24c3100] abs_diff_pic_num overflow

This is my log when I’m using the following command line:

vlc —file-logging -vv «D:Mes documentstest_videobande_test_half_size.avi.264» :sout=#duplicate{dst=display,dst=std{access=http,mux=ts,dst=:1234}}

Part of the log (I cut the end)

— logger module started —
main debug: CPU has capabilities 486 586 MMX MMXEXT SSE SSE2 FPU
main debug: looking for memcpy module: 3 candidates
main debug: using memcpy module «memcpymmxext»
main debug: waiting for thread completion
main debug: thread 3624 (playlist) created at priority 0 (playlist/playlist.c:184)
main debug: waiting for thread completion
main debug: thread 3640 (preparser) created at priority 0 (playlist/playlist.c:210)
main debug: looking for interface module: 1 candidate
main debug: using interface module «hotkeys»
main debug: thread 3664 (interface) created at priority 0 (interface/interface.c:231)
main debug: looking for interface module: 1 candidate
logger: VLC media player — version 0.8.5 Janus — (c) 1996-2006 the VideoLAN team
logger:
Attention : si vous n’avez plus accès à l’interface graphique, ouvrez une invite de commande, allez dans le répertoire où vous avez installé VLC, et lancez « vlc -I wx ».

logger: using logger…
logger warning: no log filename provided, using `vlc-log.txt’
logger debug: opening logfile `vlc-log.txt’
main debug: using interface module «logger»
main debug: thread 3692 (interface) created at priority 0 (interface/interface.c:231)
main debug: adding playlist item `D:Mes documentstest_videobande_test_half_size.avi.264′ ( D:Mes documentstest_videobande_test_half_size.avi.264 )
main debug: looking for interface module: 3 candidates
main debug: using interface module «wxwidgets»
main debug: thread 3724 (manager) created at priority 0 (interface/interface.c:216)
wxwidgets debug: Using last windows config ‘(-1,0,0,1280,1024)(0,219,245,389,91)(6,0,0,-1,150)’
wxwidgets debug: id=0 p=(219,245) s=(389,91)
wxwidgets debug: id=6 p=(0,0) s=(-1,150)
main debug: nothing requested, starting
main debug: creating new input thread
main debug: waiting for thread completion
main debug: creating statistics handler
main debug: thread 3932 (input) created at priority 1 (input/input.c:261)
main debug: stream=`duplicate’
main debug: looking for sout stream module: 1 candidate
stream_out_duplicate debug: creating ‘duplicate’
stream_out_duplicate debug: * adding `display’
main debug: stream=`display’
main debug: looking for sout stream module: 1 candidate
main debug: using sout stream module «stream_out_display»
stream_out_duplicate debug: * adding `std{access=http,mux=ts,dst=:1234}’
main debug: stream=`std’
main debug: looking for sout stream module: 1 candidate
main debug: set sout option: sout-standard-access to http
main debug: set sout option: sout-standard-mux to ts
main debug: set sout option: sout-standard-dst to :1234
stream_out_standard debug: creating `http/ts://:1234′
stream_out_standard debug: using `http/ts://:1234′
main debug: looking for sout access module: 1 candidate
main: creating httpd
main debug: net: listening to port 1234
main debug: thread 4088 (httpd host thread) created at priority 0 (network/httpd.c:1076)
main debug: using sout access module «access_output_http»
stream_out_standard debug: access opened
main debug: looking for sout mux module: 1 candidate
mux_ts debug: shaping=200000 pcr=70000 dts_delay=400000
main debug: using sout mux module «mux_ts»
main debug: muxer support adding stream at any time
stream_out_standard debug: mux opened
main debug: using sout stream module «stream_out_standard»
main debug: using sout stream module «stream_out_duplicate»
main warning: drive letter D: found in source
main debug: `D:Mes documentstest_videobande_test_half_size.avi.264′ gives access `’ demux `’ path `D:Mes documentstest_videobande_test_half_size.avi.264′
main debug: creating demux: access=» demux=» path=’D:Mes documentstest_videobande_test_half_size.avi.264′
main debug: looking for access_demux module: 1 candidate
main debug: creating access » path=’D:Mes documentstest_videobande_test_half_size.avi.264′
main debug: looking for access2 module: 5 candidates
vcd debug: trying .cue file: D:Mes documentstest_videobande_test_half_size.avi.cue
access_file debug: opening file `D:Mes documentstest_videobande_test_half_size.avi.264′
main debug: using access2 module «access_file»
main debug: pre-buffering…
main debug: received first data for our buffer
main debug: pre-buffering done 1408981 bytes in 0s — 85992 kbytes/s
main debug: creating demux: access=» demux=» path=’D:Mes documentstest_videobande_test_half_size.avi.264′
main debug: looking for demux2 module: 44 candidates
ts warning: TS module discarded (lost sync)
ffmpeg debug: detected format: h264
main debug: selecting program id=0
ffmpeg debug: adding es: video codec = h264
ffmpeg debug: AVFormat supported stream
ffmpeg debug: — format = h264 (raw H264 video format)
ffmpeg debug: — start time = -1
ffmpeg debug: — duration = -1
main debug: using demux2 module «ffmpeg»
main debug: looking for a subtitle file in D:Mes documentstest_video
main debug: looking for packetizer module: 17 candidates
packetizer_h264 debug: found NAL_SPS
main debug: using packetizer module «packetizer_h264»
main debug: stream out mode -> no decoder thread
main debug: starting in synch mode
main debug: `D:Mes documentstest_videobande_test_half_size.avi.264′ successfully opened
packetizer_h264 debug: found NAL_PPS
main debug: adding a new input
stream_out_duplicate debug: duplicated a new stream codec=h264 (es=0 group=0)
main debug: looking for decoder module: 27 candidates
ffmpeg debug: libavcodec initialized (interface 3344640 )
ffmpeg debug: postprocessing disabled
ffmpeg debug: ffmpeg codec (h264) started
main debug: using decoder module «ffmpeg»
main debug: thread 4220 (decoder) created at priority 0 (input/decoder.c:159)
stream_out_duplicate debug: — added for output 0
main debug: adding a new input
mux_ts debug: adding input codec=h264 pid=68
mux_ts debug: new PCR PID is 68
stream_out_duplicate debug: — added for output 1
main warning: trying to send non-dated packet to stream output!
main warning: trying to send non-dated packet to stream output!
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: cannot decode one frame (10020 bytes)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: cannot decode one frame (74 bytes)
main warning: late buffer for mux input (141000)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: cannot decode one frame (42667 bytes)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
mux_ts debug: adjusting rate at 0/400000 (235/0)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: cannot decode one frame (101 bytes)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: cannot decode one frame (37 bytes)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: cannot decode one frame (99 bytes)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: cannot decode one frame (4217 bytes)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: cannot decode one frame (185 bytes)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: cannot decode one frame (57 bytes)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: cannot decode one frame (38 bytes)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: non existing PPS referenced
(h264@00D4D730)
ffmpeg warning: decode_slice_header error
(h264@00D4D730)
ffmpeg warning: cannot decode one frame (28 bytes)
ffmpeg debug: concealing 0 DC, 0 AC, 0 MV errors
(h264@00D4D730)
main debug: no usable vout present, spawning one
main debug: window size: 9905×288
main debug: looking for video output module: 5 candidates
vout_directx debug: creating DirectXEventThread
main debug: waiting for thread completion
vout_directx debug: DirectXCreateWindow
vout_directx debug: created video sub-window
main debug: thread 4268 (DirectX Events Thread) created at priority 0 (directx.c:263)
vout_directx debug: DirectXEventThread running
vout_directx debug: DirectXInitDDraw
vout_directx debug: directx-device:
vout_directx debug: DirectXEnumCallback: Pilote d’affichage principal, display
vout_directx debug: DirectXEnumCallback: NVIDIA GeForce 7600 GT, \.DISPLAY1
vout_directx debug: selecting NVIDIA GeForce 7600 GT, \.DISPLAY1
vout_directx debug: DirectXEnumCallback: NVIDIA GeForce 7600 GT, \.DISPLAY2
vout_directx debug: screen dimensions (0x0,1280×1024)
vout_directx debug: DirectDraw Capabilities: overlay=1 yuvoverlay=1 can_deinterlace_overlay=1 colorkey=1 stretch=1 bltfourcc=1
vout_directx debug: align_boundary_src=0,0 align_boundary_dest=1,1 align_size_src=0,0 align_size_dest=0,0
vout_directx debug: End DirectXInitDDraw
vout_directx debug: DirectXCreateDisplay
vout_directx debug: DirectXCreateClipper
main debug: Registering subpicture channel, ID: 2
main debug: Registering subpicture channel, ID: 3
main debug: Registering subpicture channel, ID: 4
main debug: Registering subpicture channel, ID: 5
vout_directx debug: disabling screen saver
main debug: using video output module «vout_directx»
main debug: waiting for thread completion
vout_directx debug: NewPictureVec overlay:yes chroma:YV12
vout_directx debug: YUV overlay created successfully
vout_directx debug: End NewPictureVec (succeeded)
main debug: got 1 direct buffer(s)
main debug: picture in 352×288 (0,0,352×288), chroma I420, ar 268381189:432000, sar 44886:1595
main debug: picture user 352×288 (0,0,352×288), chroma I420, ar 268381189:432000, sar 44886:1595
main debug: picture out 352×288 (0,0,352×288), chroma I420, ar 268381189:432000, sar 44886:1595
main debug: direct render, mapping render pictures 0-6 to system pictures 1-7
main debug: thread 4300 (video output) created at priority 1 (video_output/video_output.c:421)
ffmpeg debug: concealing 0 DC, 0 AC, 0 MV errors
(h264@00D4D730)
ffmpeg warning: reference picture missing during reorder
(h264@00D4D730)
ffmpeg warning: reference picture missing during reorder
(h264@00D4D730)
ffmpeg warning: reference picture missing during reorder
(h264@00D4D730)
ffmpeg warning: reference picture missing during reorder
(h264@00D4D730)
ffmpeg debug: concealing 0 DC, 0 AC, 0 MV errors
(h264@00D4D730)
ffmpeg debug: concealing 0 DC, 0 AC, 0 MV errors
(h264@00D4D730)

I split this (http://www.auby.no/files/video_tests/h264_720p_mp_3.1_3mbps_aac_shrinkage.mp4) video using mp4box command «MP4Box -split 1 shrinking.mp4» into slices of 1 second each. I have following questions:

I got different sizes of the video although I sliced it evenly at 1 second. Not sure how this happened?

When I try to dump the information about the video slice file, I get the below message with an error. Can someone please help me understand what it is, and how possibly I can modify the command above to get rid of it? This error occurs for every video slide generated. This error comes only on the sliced videos.

Thanks, /anil.

anilj@desk1:~/workspace/testprogs/shellscripts$ ffmpeg -i invideo/shrinking_01.mp4
ffmpeg version N-36083-g2501f93-xuggle-5.5 Copyright (c) 2000-2012 the FFmpeg developers
  built on Jun  3 2014 13:43:04 with gcc 4.6.4
  configuration: --prefix=/home/anilj/workspace/xugglehome --extra-version=xuggle-5.5 --extra-cflags=-I/home/anilj/workspace/xuggle-xuggler/build/native/x86_64-unknown-linux-gnu/captive/stage/home/anilj/workspace/xugglehome/include --extra-ldflags=-L/home/anilj/workspace/xuggle-xuggler/build/native/x86_64-unknown-linux-gnu/captive/stage/home/anilj/workspace/xugglehome/lib --disable-shared --enable-pic --enable-gpl --enable-nonfree --enable-libx264 --enable-version3 --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libspeex --enable-libvo-aacenc --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-openssl --enable-zlib --enable-libvpx
  libavutil      51. 46.100 / 51. 46.100
  libavcodec     54. 14.101 / 54. 14.101
  libavformat    54.  3.100 / 54.  3.100
  libavdevice    53.  4.100 / 53.  4.100
  libavfilter     2. 67.101 /  2. 67.101
  libswscale      2.  1.100 /  2.  1.100
  libswresample   0. 10.100 /  0. 10.100
  libpostproc    52.  0.100 / 52.  0.100
[h264 @ 0x1ddeac0] Missing reference picture
[h264 @ 0x1ddeac0] decode_slice_header error
[h264 @ 0x1ddeac0] Missing reference picture
[h264 @ 0x1ddeac0] decode_slice_header error
[h264 @ 0x1ddeac0] Missing reference picture
[h264 @ 0x1ddeac0] decode_slice_header error
[h264 @ 0x1ddeac0] Missing reference picture
[h264 @ 0x1ddeac0] decode_slice_header error
[h264 @ 0x1ddeac0] concealing 3600 DC, 3600 AC, 3600 MV errors
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'invideo/shrinking_01.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 1
    compatible_brands: isom
    creation_time   : 2014-06-19 20:21:02
  Duration: 00:00:00.90, start: 0.000000, bitrate: 38 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 30 kb/s, 29.96 fps, 29.96 tbr, 29956 tbn, 59.92 tbc
    Metadata:
      creation_time   : 2011-05-05 18:09:35
      handler_name    : ?Apple Video Media Handler
At least one output file must be specified

Я получаю следующие ошибки при декодировании кадров H.264, полученных с удаленного конца видеовызова SIP на основе H.264. Оцените любую помощь в понимании ошибок.

non-existing PPS 0 referenced
decode_slice_header error
non-existing PPS 0 referenced
decode_slice_header error
no frame!

non-existing PPS 0 referenced
decode_slice_header error
non-existing PPS 0 referenced
decode_slice_header error
no frame!

4b9b3361

Ответ 1

Это означает, что ffmpeg еще не видел ключевой кадр, который содержит информацию SPS и PPS. SPS и PPS имеют решающее значение для декодирования входящего кадра/среза. Ключевые кадры отправляются периодически (то есть каждые 5-10 секунд или более); так что если окажется, что вы присоединились к потоку до появления ключевого кадра; вы увидите это предупреждение для каждого кадра, пока не появится ключевой кадр.

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

Ответ 2

Для декодирования кадра или фрагмента декодируется sliceHeader, который относится к PPS или «Набор параметров изображения». Он содержит информацию о специфике рамки, такой как ширина, высота и т.д.

Я думаю, ваши данные поступают через потоковый входной канал, и в этом случае SPS и PPS были бы отправлены ранее в потоке.

Возможно, вам придется объединить то же самое с вашим потоком.

Ответ 3

вам нужно добавить фреймы sps и pps. ffmpeg нуждается в этой информации для декодирования. Эти значения можно найти в SDP файле.

В SDP файле вы должны посмотреть NAL-единицы, вы можете увидеть что-то вроде этого z0IAHukCwS1xIADbugAzf5GdyGQl, aM4xUg

эти значения на основе64 кодируются, вы должны преобразовать его в шестнадцатеричный формат. Я использую wirehark, и wirehark преобразует эти значения для вас. После этого вы получите значения sps и pps.

Теперь вам нужно добавить эти данные Nal перед фреймом данных.

00 00 00 01 sps 00 00 00 01 pps 00 00 00 01 данные

для h264 этот формат, который я использовал для декодирования.

After careful consideration, we determined we cannot publish a workaround to address the header corruption in your source video. As noted earlier in this thread, the following text will be added to our release notes:
«CPU implementation decode error recovery is limited. Decode of corrupted bitstreams may fail.»

At this time the CPU implementation’s decode error recovery is deliberately simplistic. The decode loop simply aborts if any problems are found. It is up to developers using this implementation to extend the source with decode error recovery suitable for their use case and content. We do not have plans to significantly improve the CPU implementation’s decode error recovery robustness in the near future.

The problem in your input source video raises an AVERROR_INVALIDDATA error. It is detected in This line

To start debugging, you will need a sample app to call that code. Try modifying the hello-decode sample and allow h264 input video (currently only allows h265 video) or start with decvpp_tool you were using so that it does not stopped by above mentioned block of code.

To debug our solution, you would build our oneVPL repo in debug build and build our oneVPL-cpu repo in debug build following our Build/Install Instructions except:

1. Replace ‘cmake —build . —config Release —target install’ with ‘cmake —build . —config Debug —target install’

2.Replace

scriptbootstrap
scriptbuild
scriptinstall

with

scriptbootstrap gpl
scriptbuild debug gpl
scriptinstall debug gpl

3. Run %VPL_INSTALL_DIR%etcvplvars.bat
4. Go to _build directory in the oneVPL, and run «vpl.sln»


Понравилась статья? Поделить с друзьями:

Читайте также:

  • Decode error output not utf 8
  • Declare error aspectj
  • Declaration syntax error перевод
  • Declaration syntax error borland c
  • Declaration is incompatible with error type

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии