Page 1 of 1

Problems with h264 streaming with B-Frames

Posted: 11 Feb 2009 23:41
by Gastonuy
Hi
I'm trying to stream h.264 videos. I'm enconding them with Canopus ProCoder 3 and then I'm sending them with VLC and receiving them wit VLC.
The problem occurs when the GOP has B-frames, the video on the receiver frezzes, when I encode it without B-Frames it works like a charm. I tried to change many parameters but the result is the same. I'm using the GUI for the streamer.
Any idea why this could be happening? Is there any known issues with H.264 streaming?
Thanks!

Re: Problems with h264 streaming with B-Frames

Posted: 12 Feb 2009 09:47
by giangy11
are you streaming video on internet or locale lan?

Re: Problems with h264 streaming with B-Frames

Posted: 12 Feb 2009 15:52
by VLC_help
What error message VLC shows in Tools -> Messages... (set Verbosity to 2) when freeze occurs?

Re: Problems with h264 streaming with B-Frames

Posted: 26 Feb 2009 01:22
by Gastonuy
Well, on the receiver I get the following messages:

Code: Select all

main debug: creating demux: access='udp' demux='' path='@:1234' main debug: looking for demux module: 51 candidates main debug: using demux module "ts" main debug: TIMER module_Need() : 4.000 ms - Total 4.000 ms / 1 intvls (Avg 4.000 ms) main debug: looking for a subtitle file in C:\Archivos de programa\VideoLAN\VLC\ ts debug: DEMUX_SET_GROUP 0 00000000 access_udp warning: unimplemented query in control main debug: `udp://@:1234' successfully opened qt4 debug: New Event: type 1103 ts debug: PATCallBack called qt4 debug: Updating the stream status: 3 ts debug: new PAT ts_id=1453 version=16 current_next=1 ts debug: * number=1 pid=66 ts debug: PMTCallBack called ts debug: new PMT program number=1 version=4 pid_pcr=68 ts debug: * es pid=68 type=27 fcc=h264 main debug: selecting program id=1 main debug: looking for decoder module: 34 candidates avcodec debug: libavcodec already initialized qt4 debug: New Event: type 1108 avcodec debug: ffmpeg codec (H264 - MPEG-4 AVC (part 10)) started main debug: using decoder module "avcodec" main debug: TIMER module_Need() : 4.000 ms - Total 4.000 ms / 1 intvls (Avg 4.000 ms) main debug: looking for packetizer module: 18 candidates main debug: using packetizer module "packetizer_h264" main debug: TIMER module_Need() : 1.000 ms - Total 1.000 ms / 1 intvls (Avg 1.000 ms) main debug: thread 5608 (decoder) created at priority 0 (input/decoder.c:217) main debug: thread started main debug: control type=1 packetizer_h264 debug: found NAL_SPS (sps_id=0) packetizer_h264 debug: found NAL_PPS (pps_id=0 sps_id=0) main debug: no usable vout present, spawning one main debug: window size: 720x528 main debug: looking for video output module: 6 candidates vout_directx debug: creating DirectXEventThread main debug: waiting for thread initialization main debug: thread started vout_directx debug: DirectXCreateWindow main debug: looking for vout window module: 2 candidates qt4 debug: waiting for interface... qt4 debug: requesting window... qt4 debug: Video was requested -1, -1 qt4 debug: Video is resizing to: 720 528 qt4 debug: Qt FS: Attaching Vout qt4 debug: Qt: Changing Fullscreen Mode main debug: using vout window module "qt4" main debug: TIMER module_Need() : 1.000 ms - Total 1.000 ms / 1 intvls (Avg 1.000 ms) qt4 debug: Updating the geometry vout_directx debug: created video sub-window main debug: thread 5724 (Vout Events Thread) created at priority 0 (directx.c:281) vout_directx debug: Vout EventThread running vout_directx debug: DirectXInitDDraw vout_directx debug: directx-device: vout_directx debug: DirectXEnumCallback: Controlador de pantalla primaria, display vout_directx debug: DirectXEnumCallback: Mobile Intel(R) 945GM/GU Express Chipset Family, \\.\DISPLAY1 vout_directx debug: selecting Mobile Intel(R) 945GM/GU Express Chipset Family, \\.\DISPLAY1 vout_directx debug: screen dimensions (0x0,1280x800) vout_directx debug: DirectDraw Capabilities: overlay=1 yuvoverlay=1 can_deinterlace_overlay=1 colorkey=1 stretch=1 bltfourcc=1 vout_directx debug: End DirectXInitDDraw vout_directx debug: DirectXCreateDisplay vout_directx debug: DirectXCreateClipper vout_directx debug: disabling screen saver main debug: using video output module "vout_directx" main debug: TIMER module_Need() : 132.000 ms - Total 132.000 ms / 1 intvls (Avg 132.000 ms) main debug: waiting for thread initialization main debug: thread started 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 720x480 (0,0,720x480), chroma I420, ar 58909:43200, sar 10:11 main debug: picture user 720x480 (0,0,720x480), chroma I420, ar 58909:43200, sar 10:11 main debug: picture out 720x480 (0,0,720x480), chroma I420, ar 58909:43200, sar 10:11 main debug: direct render, mapping render pictures 0-6 to system pictures 1-7 main debug: thread 5664 (video output) created at priority 1 (video_output/video_output.c:502) qt4 debug: New Event: type 1109 avcodec warning: Missing reference picture (h264@0D7464A0) avcodec warning: Missing reference picture (h264@0D7464A0) avcodec warning: Missing reference picture (h264@0D7464A0) main debug: looking for text renderer module: 2 candidates main debug: thread 5828 (fontlist builder) created at priority 0 (freetype.c:477) freetype debug: using fontsize: 30 main debug: using text renderer module "freetype" main debug: TIMER module_Need() : 2.000 ms - Total 2.000 ms / 1 intvls (Avg 2.000 ms) freetype debug: using fontsize: 30 main debug: thread started freetype debug: Building font database... freetype debug: Finished building font database. freetype debug: Took 0 seconds main debug: thread ended main debug: looking for video blending module: 1 candidate blend debug: chroma: YUVA -> I420 main debug: using video blending module "blend" main debug: TIMER module_Need() : 0.000 ms - Total 0.000 ms / 1 intvls (Avg 0.000 ms) avcodec warning: Missing reference picture (h264@0D7464A0) avcodec warning: Missing reference picture (h264@0D7464A0) avcodec warning: Missing reference picture (h264@0D7464A0) avcodec warning: Missing reference picture (h264@0D7464A0) avcodec warning: Missing reference picture (h264@0D7464A0) avcodec warning: Missing reference picture (h264@0D7464A0) avcodec warning: Missing reference picture (h264@0D7464A0) avcodec warning: Missing reference picture (h264@0D7464A0) avcodec warning: Missing reference picture (h264@0D7464A0) avcodec warning: Missing reference picture (h264@0D7464A0) avcodec warning: Missing reference picture (h264@0D7464A0) avcodec warning: Missing reference picture (h264@0D7464A0) avcodec warning: Missing reference picture (h264@0D7464A0) avcodec warning: Missing reference picture (h264@0D7464A0) avcodec warning: Missing reference picture (h264@0D7464A0) avcodec warning: Missing reference picture (h264@0D7464A0) avcodec warning: Missing reference picture (h264@0D7464A0) avcodec warning: Missing reference picture (h264@0D7464A0) avcodec warning: Missing reference picture (h264@0D7464A0) avcodec warning: Missing reference picture (h264@0D7464A0) avcodec warning: Missing reference picture (h264@0D7464A0) avcodec warning: Missing reference picture (h264@0D7464A0) avcodec warning: Missing reference picture (h264@0D7464A0) avcodec warning: Missing reference picture (h264@0D7464A0) avcodec warning: Missing reference picture (h264@0D7464A0) avcodec warning: Missing reference picture (h264@0D7464A0) avcodec warning: Missing reference picture (h264@0D7464A0) avcodec warning: Missing reference picture (h264@0D7464A0) avcodec warning: Missing reference picture (h264@0D7464A0)
And on the transmiter:

Code: Select all

main debug: starting new item main debug: processing request item Streaming node Lista de reproducción skip 0 main debug: resyncing on Streaming main debug: Streaming is at 0 main debug: creating new input thread main debug: Creating an input for 'Streaming' main debug: waiting for thread initialization main debug: thread started main debug: thread 5472 (input) created at priority 1 (input/input.c:370) qt4 debug: Updating the stream status: 3 main debug: stream=`duplicate' main debug: looking for sout stream module: 1 candidate stream_out_duplicate debug: creating 'duplicate' stream_out_duplicate debug: * adding `std{access=udp,dst=10.135.85.7:1234}' main debug: stream=`std' main debug: looking for sout stream module: 1 candidate main debug: set config option: sout-standard-access to udp main debug: set config option: sout-standard-dst to 10.135.85.7:1234 stream_out_standard debug: creating `udp/(null)://10.135.85.7:1234' stream_out_standard debug: extension is 7:1234 stream_out_standard debug: extension -> mux=(null) stream_out_standard debug: using `udp/ts://10.135.85.7:1234' main debug: looking for sout access module: 1 candidate main debug: net: connecting to [10.135.85.7]:1234 access_output_udp debug: source: 10.135.85.7 port 2590 access_output_udp debug: destination: 10.135.85.7 port 1234 main debug: thread 5452 (sout write thread) created at priority 15 (udp.c:255) main debug: using sout access module "access_output_udp" main debug: TIMER module_Need() : 6.000 ms - Total 6.000 ms / 1 intvls (Avg 6.000 ms) main debug: thread started 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: TIMER module_Need() : 9.000 ms - Total 9.000 ms / 1 intvls (Avg 9.000 ms) 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: TIMER module_Need() : 26.000 ms - Total 26.000 ms / 1 intvls (Avg 26.000 ms) main debug: using sout stream module "stream_out_duplicate" main debug: TIMER module_Need() : 26.000 ms - Total 26.000 ms / 1 intvls (Avg 26.000 ms) main debug: `C:\Documents and Settings\gguridi\Mis documentos\src16_ref__525_480_H264_GOP33.h264' gives access `' demux `' path `C:\Documents and Settings\gguridi\Mis documentos\src16_ref__525_480_H264_GOP33.h264' main debug: creating demux: access='' demux='' path='C:\Documents and Settings\gguridi\Mis documentos\src16_ref__525_480_H264_GOP33.h264' main debug: looking for access_demux module: 1 candidate main debug: TIMER module_Need() : 0.000 ms - Total 0.000 ms / 1 intvls (Avg 0.000 ms) main debug: creating access '' path='C:\Documents and Settings\gguridi\Mis documentos\src16_ref__525_480_H264_GOP33.h264' qt4 debug: New Event: type 1103 qt4 debug: Updating the stream status: 1 main debug: looking for access module: 5 candidates vcd debug: trying .cue file: C:\Documents and Settings\gguridi\Mis documentos\src16_ref__525_480_H264_GOP33.cue vcd debug: could not find .cue file access_file debug: opening file `C:\Documents and Settings\gguridi\Mis documentos\src16_ref__525_480_H264_GOP33.h264' main debug: using access module "access_file" main debug: TIMER module_Need() : 1.000 ms - Total 1.000 ms / 1 intvls (Avg 1.000 ms) main debug: Using AStream*Stream main debug: pre-buffering... main debug: received first data for our buffer qt4 debug: New Event: type 1103 qt4 debug: Updating the stream status: 2 main debug: pre-buffering done 1408981 bytes in 0s - 275136 kbytes/s main debug: creating demux: access='' demux='' path='C:\Documents and Settings\gguridi\Mis documentos\src16_ref__525_480_H264_GOP33.h264' main debug: looking for demux module: 59 candidates h264 warning: h264 module discarded (no startcode) main debug: using demux module "ts" main debug: TIMER module_Need() : 3.000 ms - Total 3.000 ms / 1 intvls (Avg 3.000 ms) main debug: looking for a subtitle file in C:\Documents and Settings\gguridi\Mis documentos\ ts debug: DEMUX_SET_GROUP 0 00000000 main debug: starting in async mode main debug: `C:\Documents and Settings\gguridi\Mis documentos\src16_ref__525_480_H264_GOP33.h264' successfully opened ts debug: pid[481] unknown ts debug: PATCallBack called ts debug: new PAT ts_id=0 version=0 current_next=1 ts debug: * number=1 pid=480 ts debug: PMTCallBack called qt4 debug: New Event: type 1103 qt4 debug: Updating the stream status: 3 ts debug: new PMT program number=1 version=0 pid_pcr=481 ts debug: * es pid=2064 type=27 fcc=h264 main debug: selecting program id=1 main debug: looking for packetizer module: 18 candidates main debug: using packetizer module "packetizer_h264" main debug: TIMER module_Need() : 1.000 ms - Total 1.000 ms / 1 intvls (Avg 1.000 ms) main debug: stream out mode -> no decoder thread main debug: control type=1 qt4 debug: New Event: type 1108 packetizer_h264 debug: found NAL_SPS (sps_id=0) packetizer_h264 debug: found NAL_PPS (pps_id=0 sps_id=0) main debug: adding a new sout input (sout_input:02610C88) stream_out_duplicate debug: duplicated a new stream codec=h264 (es=2064 group=1) 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 0 main debug: switching to sync mode mux_ts warning: packet with too strange dts (dts=13240925511,old=13240992244,pcr=13240992244) mux_ts warning: packet with too strange dts (dts=13241125711,old=13241192444,pcr=13241192444) mux_ts warning: packet with too strange dts (dts=13241325911,old=13241392644,pcr=13241392644) mux_ts warning: packet with too strange dts (dts=13241526111,old=13241592844,pcr=13241592844) mux_ts warning: packet with too strange dts (dts=13241726311,old=13241793044,pcr=13241793044) mux_ts warning: packet with too strange dts (dts=13241926511,old=13241993244,pcr=13241993244) mux_ts warning: packet with too strange dts (dts=13242126711,old=13242193444,pcr=13242193444) mux_ts warning: packet with too strange dts (dts=13242326911,old=13242393644,pcr=13242393644) mux_ts warning: packet with too strange dts (dts=13242527111,old=13242593844,pcr=13242593844) mux_ts warning: packet with too strange dts (dts=13242727311,old=13242794044,pcr=13242794044) mux_ts warning: packet with too strange dts (dts=13243060978,old=13243127711,pcr=13243127711) mux_ts warning: packet with too strange dts (dts=13243261178,old=13243327911,pcr=13243327911) mux_ts warning: packet with too strange dts (dts=13243461378,old=13243528111,pcr=13243528111) mux_ts warning: packet with too strange dts (dts=13243661578,old=13243728311,pcr=13243728311) mux_ts warning: packet with too strange dts (dts=13243861778,old=13243928511,pcr=13243928511) access_output_udp debug: mmh, packets in the past (91113) access_output_udp debug: packet has been sent too late (91347) access_output_udp debug: packet has been sent too late (77740) access_output_udp debug: packet has been sent too late (64133) access_output_udp debug: packet has been sent too late (50526) access_output_udp debug: packet has been sent too late (36919) access_output_udp debug: packet has been sent too late (23312) access_output_udp debug: mmh, packets in the past (87216) access_output_udp debug: packet has been sent too late (87815) access_output_udp debug: packet has been sent too late (73564) access_output_udp debug: packet has been sent too late (59314) access_output_udp debug: packet has been sent too late (45063) access_output_udp debug: packet has been sent too late (30813) mux_ts warning: packet with too strange dts (dts=13244061978,old=13244128711,pcr=13244128711) access_output_udp debug: mmh, packets in the past (86284) access_output_udp debug: packet has been sent too late (86087) access_output_udp debug: packet has been sent too late (69863) access_output_udp debug: packet has been sent too late (53640) access_output_udp debug: packet has been sent too late (37416) access_output_udp debug: packet has been sent too late (21192) mux_ts warning: packet with too strange dts (dts=13244262178,old=13244328911,pcr=13244328911) access_output_udp debug: mmh, packets in the past (84216) access_output_udp debug: packet has been sent too late (83275) access_output_udp debug: packet has been sent too late (66127) access_output_udp debug: packet has been sent too late (48980) access_output_udp debug: packet has been sent too late (31833) mux_ts warning: packet with too strange dts (dts=13244462378,old=13244529111,pcr=13244529111) access_output_udp debug: mmh, packets in the past (85653) ... ... ... ... ... ... access_output_udp debug: packet has been sent too late (31907) access_output_udp debug: mmh, packets in the past (88891) access_output_udp debug: packet has been sent too late (88770) access_output_udp debug: packet has been sent too late (77431) access_output_udp debug: packet has been sent too late (66092) access_output_udp debug: packet has been sent too late (54752) access_output_udp debug: packet has been sent too late (43413) access_output_udp debug: packet has been sent too late (32074) access_output_udp debug: packet has been sent too late (20734) mux_ts warning: packet with too strange dts (dts=13249300544,old=13249367278,pcr=13249367278) access_output_udp debug: mmh, packets in the past (89631) access_output_udp debug: packet has been sent too late (89919) access_output_udp debug: packet has been sent too late (78123) access_output_udp debug: packet has been sent too late (66328) access_output_udp debug: packet has been sent too late (54532) access_output_udp debug: packet has been sent too late (42736) access_output_udp debug: packet has been sent too late (30940) access_output_udp debug: packet has been sent too late (20144) ts debug: eof ? main debug: EOF reached main debug: finished input main debug: dying input qt4 debug: Updating the stream status: 8 main debug: dying input ts debug: pid list: ts debug: - pid[0] seen ts debug: - pid[480] seen ts debug: - pid[481] seen main debug: removing module "packetizer_h264" main debug: killing decoder fourcc `h264', 0 PES in FIFO main debug: removing a sout input (sout_input:02610C88) mux_ts debug: removing input pid=68 mux_ts debug: new PCR PID is 8191 main debug: dying input main warning: no more input streams for this mux main debug: Program doesn't contain anymore ES ts debug: - pid[2064] seen ts debug: - pid[8191] seen main debug: removing module "ts" main debug: removing module "access_file" main debug: thread ended access_output_udp debug: mmh, packets in the past (59952) access_output_udp debug: packet has been sent too late (60363) access_output_udp debug: packet has been sent too late (55591) access_output_udp debug: packet has been sent too late (50819) access_output_udp debug: packet has been sent too late (46048) access_output_udp debug: packet has been sent too late (41276) access_output_udp debug: packet has been sent too late (36504) access_output_udp debug: packet has been sent too late (31732) access_output_udp debug: packet has been sent too late (27961) access_output_udp debug: packet has been sent too late (23189) main debug: dead input main debug: thread times: real 0m14.359375s, kernel 0m0.093750s, user 0m0.187500s main debug: thread 5472 joined (playlist/engine.c:244) main debug: TIMER input launching for 'Streaming' : 48.000 ms - Total 48.000 ms / 1 intvls (Avg 48.000 ms) main debug: destroying chain... (name=duplicate) stream_out_duplicate debug: closing a duplication main debug: destroying chain... (name=std) main debug: removing module "mux_ts" main debug: thread ended main debug: thread times: real 0m14.406250s, kernel 0m0.000000s, user 0m0.000000s main debug: thread 5452 joined (udp.c:294) access_output_udp debug: UDP access output closed main debug: removing module "access_output_udp" main debug: removing module "stream_out_standard" main debug: destroying chain done main debug: removing module "stream_out_duplicate" main debug: destroying chain done main debug: starting new item main debug: changing item without a request (current 0/1) main debug: nothing to play
Any idea of what is going on??
Thanks

Re: Problems with h264 streaming with B-Frames

Posted: 26 Feb 2009 13:33
by VLC_help
VLC doesn't send the video correctly. Could you try 1.0.0 test builds?

Re: Problems with h264 streaming with B-Frames

Posted: 27 Feb 2009 01:36
by Gastonuy
It didn't work on 1.0.0, the video plays just like in 0.98, do you want me to post the messages log?
Do you think this can be fixed by selecting some other streaming options or encoding the video differently?
Thanks

Re: Problems with h264 streaming with B-Frames

Posted: 27 Feb 2009 10:43
by VLC_help
I assume different encoding settings would fix this.

Re: Problems with h264 streaming with B-Frames

Posted: 02 Mar 2009 21:20
by Gastonuy
Do you know what is the problem exactly? I would like to know why is VLC sending the video incorrectly.
Thanks

Re: Problems with h264 streaming with B-Frames

Posted: 03 Mar 2009 14:26
by VLC_help
access_output_udp debug: packet has been sent too late (31833)
mux_ts warning: packet with too strange dts (dts=13244462378,old=13244529111,pcr=13244529111)
Would indicate that there are some errors at muxing. I am not sure if they are caused by muxer or is the data fed to muxer against the specs.