[vlc-devel] H.264 stremaing with multiple slices

yanwei liu yanw.liu at gmail.com
Tue Sep 28 09:49:19 CEST 2010


Hello, experts,

I currently implement H.264 RTP streaming. I implemented the function
of sending RTP  for H.264 compressed video file and transmitted the
rtp packets over UDP,  the client receive the rtp and play the video
using vlc player.

The specific operation flow is as follows. I first start up the vlc
media player and open a sdp file, and then start up the server to send
rtp packets. Actually the server has defined the information of sdp
file. The vlc media player then can display the video. When the video
is not encoded with multiple slice mode, it is can be played well.
That is, one frame is packed into one packet. However, when the video
is encoded with mujltiple slice mode, (one slice is packed into one
packet) the vlc only show the Intra frame. I coded the video with IPPP
structure. GOP size is to 10.

When vlc player opens the offline h.264 compressed video file with
slice mode coding, it can also play the video. I used the vlc 1.0.3.

Do you encounter the similar problem? It will be very appreciated if
you can give some suggestions.

debugging message is shown as following.

main debug: processing request item rtp://192.168.4.104:1234 node 播放列表 skip 0
main debug: resyncing on rtp://192.168.4.104:1234
main debug: rtp://192.168.4.104:1234 is at 0
main debug: starting new item
main debug: creating new input thread
main debug: Creating an input for 'rtp://192.168.4.104:1234'
main debug: thread started
main debug: using timeshift granularity of 50 MBytes
main debug: using timeshift path 'C:\DOCUME~1\joshua\LOCALS~1\Temp'
main debug: thread (input) created at priority 1 (../.././src/input/input.c:230)
main debug: `rtp://@192.168.4.104:1234' gives access `rtp' demux `'
path `@192.168.4.104:1234'
main debug: creating demux: access='rtp' demux='' path='@192.168.4.104:1234'
main debug: looking for access_demux module: 1 candidate
qt4 debug: IM: Setting an input
main debug: net: opening 192.168.4.104 datagram port 1234
main debug: using access_demux module "rtp"
main debug: TIMER module_need() : 5.000 ms - Total 5.000 ms / 1 intvls
(Avg 5.000 ms)
main debug: looking for a subtitle file in D:\vlc-1.0.3-win32\vlc-1.0.3\
main debug: `rtp://@192.168.4.104:1234' successfully opened
rtp debug: detected MPEG2 TS
rtp debug: added payload type 33 (f = 90000 Hz)
main debug: thread (stream out) created at priority 1
(../.././src/input/stream_demux.c:98)
rtp debug: added RTP source (f2c26479)
main debug: thread started
main debug: creating demux: access='' demux='ts' path=''
qt4 debug: Updating the geometry
qt4 debug: Updating the geometry
main debug: looking for demux module: 1 candidate
main debug: using demux module "ts"
main debug: TIMER module_need() : 2.000 ms - Total 2.000 ms / 1 intvls
(Avg 2.000 ms)
ts debug: DEMUX_SET_GROUP -1 0
ts debug: PATCallBack called
ts debug: new PAT ts_id=7767 version=15 current_next=1
ts debug:   * number=1 pid=66
ts debug: PMTCallBack called
ts debug: new PMT program number=1 version=30 pid_pcr=68
ts debug:   * es pid=68 type=27 fcc=h264
main debug: selecting program id=1
main debug: looking for decoder module: 36 candidates
avcodec debug: libavcodec already initialized
avcodec debug: ffmpeg codec (H264 - MPEG-4 AVC (part 10)) started
main debug: using decoder module "avcodec"
main debug: TIMER module_need() : 5.000 ms - Total 5.000 ms / 1 intvls
(Avg 5.000 ms)
main debug: looking for packetizer module: 21 candidates
main debug: using packetizer module "packetizer_h264"
main debug: TIMER module_need() : 0.000 ms - Total 0.000 ms / 1 intvls
(Avg 0.000 ms)
main debug: thread (decoder) created at priority 0
(../.././src/input/decoder.c:315)
qt4 debug: Updating the geometry
qt4 debug: Updating the geometry
qt4 debug: Updating the geometry
qt4 debug: Updating the geometry
qt4 debug: Updating the geometry
main debug: thread started
ts warning: first packet for pid=68 cc=0x6
main debug: Buffering 0%
main debug: Buffering 7%
packetizer_h264 warning: waiting for SPS/PPS
qt4 debug: Updating the geometry
qt4 debug: Updating the geometry
packetizer_h264 warning: waiting for SPS/PPS
main debug: Buffering 14%
packetizer_h264 warning: waiting for SPS/PPS
main debug: Buffering 21%
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
main debug: Buffering 28%
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
main debug: Buffering 35%
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
main debug: Buffering 42%
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
main debug: Buffering 49%
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
main debug: Buffering 56%
packetizer_h264 warning: waiting for SPS/PPS
main debug: Buffering 63%
packetizer_h264 warning: waiting for SPS/PPS
main debug: Buffering 70%
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
main debug: Buffering 77%
packetizer_h264 warning: waiting for SPS/PPS
main debug: Buffering 84%
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
main debug: Buffering 91%
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
main debug: Buffering 98%
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
main debug: Stream buffering done (1053 ms in 1030 ms)
main debug: Decoder buffering done in 0 ms
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
packetizer_h264 warning: waiting for SPS/PPS
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: looking for text renderer module: 2 candidates
main debug: thread started
freetype debug: Building font database...
freetype debug: Finished building font database.
freetype debug: Took 0 microseconds
main debug: thread (fontlist builder) created at priority 0
(../../.././modules/misc/freetype.c:475)
main debug: thread ended
freetype debug: using fontsize: 2
main debug: using text renderer module "freetype"
main debug: TIMER module_need() : 7.000 ms - Total 7.000 ms / 1 intvls
(Avg 7.000 ms)
main debug: looking for video filter2 module: 20 candidates
swscale debug: 32x32 chroma: YUVA -> 16x16 chroma: YUVA with scaling
using Bicubic (good quality)
main debug: using video filter2 module "swscale"
main debug: TIMER module_need() : 2.000 ms - Total 2.000 ms / 1 intvls
(Avg 2.000 ms)
main debug: looking for video filter2 module: 20 candidates
yuvp debug: YUVP to YUVA converter
main debug: using video filter2 module "yuvp"
main debug: TIMER module_need() : 1.000 ms - Total 1.000 ms / 1 intvls
(Avg 1.000 ms)
main debug: window size: 176x144
main debug: looking for video output module: 7 candidates
vout_directx debug: creating DirectXEventThread
main debug: thread (Vout Events Thread) created at priority 0
(../../../.././modules/video_output/msw/directx.c:282)
main debug: thread started
vout_directx debug: DirectXCreateWindow
main debug: looking for hwnd module: 3 candidates
qt4 debug: requesting video...
qt4 debug: Video was requested -1, -1
qt4 debug: Video is resizing to: 176 144
qt4 debug: Updating the geometry
main debug: using hwnd module "qt4"
main debug: TIMER module_need() : 52.000 ms - Total 52.000 ms / 1
intvls (Avg 52.000 ms)
vout_directx debug: created video sub-window
vout_directx debug: Vout EventThread running
vout_directx debug: DirectXInitDDraw
vout_directx debug: directx-device:
vout_directx debug: DirectXEnumCallback: ???????????????, display
vout_directx debug: DirectXEnumCallback: NVIDIA GeForce G 105M      ,
\\.\DISPLAY1
vout_directx debug: selecting NVIDIA GeForce G 105M      , \\.\DISPLAY1
vout_directx debug: screen dimensions (0x0,1366x768)
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
vout_directx debug: disabling screen saver
main debug: using video output module "vout_directx"
main debug: TIMER module_need() : 145.000 ms - Total 145.000 ms / 1
intvls (Avg 145.000 ms)
main debug: Deinterlacing available
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: pic render sz 176x144, of (0,0), vsz 176x144, 4cc I420, ar
11:9, sar 1:1, msk r0x0 g0x0 b0x0
main debug: pic in sz 176x144, of (0,0), vsz 176x144, 4cc I420, ar
11:9, sar 1:1, msk r0x0 g0x0 b0x0
main debug: pic out sz 176x144, of (0,0), vsz 176x144, 4cc I420, ar
11:9, sar 1:1, msk r0x0 g0x0 b0x0
main debug: direct render, mapping render pictures 0-14 to system pictures 1-15
main debug: End of video preroll
freetype debug: using fontsize: 9
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)
main debug: Post-processing available
qt4 debug: Qt: Entering Fullscreen

-- 
Best Regards,

Joshua.



More information about the vlc-devel mailing list