Getting rtp (javacv ffmpeg) stream from VLC as client

1,669 views
Skip to first unread message

Sezer Teleke

unread,
Apr 15, 2015, 3:26:28 AM4/15/15
to jav...@googlegroups.com
I am trying to play rtp stream from vlc player which I created using javacv. Here is the code:

FFmpegFrameGrabber frameGrabber = new FFmpegFrameGrabber("rtsp://10.6.0.147:554/ufirststream");
frameGrabber.start();  // First I take another stream

FFmpegFrameRecorder frameRecorder = new FFmpegFrameRecorder("rtp://239.31.31.69:4433", frameGrabber.getImageWidth(), frameGrabber.getImageHeight());
frameRecorder.setFormat("rtp");
frameRecorder
.setPixelFormat(AV_PIX_FMT_YUV420P);
frameRecorder
.setVideoCodec(AV_CODEC_ID_MPEG2VIDEO); <-- AV_CODEC_ID_H264
frameRecorder
.setFrameRate(25);
frameRecorder
.setVideoBitrate(1024); <--1024*1024*2
frameRecorder
.start();
while (true) {
     frameRecorder
.record(frameGrabber.grab()); //grab from stream, stream with rtp
}

If I choose my codec as AV_CODEC_ID_MPEG2VIDEO I can play the stream from VLC using rtp://239.31.31.69:4433 with open network.

If I increase the quality using setVideoBitrate(1024*1024*2) the stream lags too much and if I decrease the quality is so bad.

I want to use AV_CODEC_ID_H264 as my codec to fasten things with better quality but i can't play the stream from VLC getting error :

SDP required A description in SDP format is required to receive the RTP stream. Note that rtp:// URIs cannot work with dynamic RTP payload format (96).

I tried to get sdp using wireshark and then I realized rtp stream doesn't have sdp :) so I tried to create my own sdp like this
c=IN IP4 239.31.31.69
m
=video 4433 RTP/AVP 96
a
=rtpmap:96 H264/90000
and this
v=0
c
=IN IP4 239.31.31.69
a
=recvonly
t
=0 0
m
=video 4433 RTP/AVP 99
a
=rtpmap:99 H264/90000
a
=fmtp:99 packetization-mode=1;profile-level-id=42c01e;sprop-parameter sets=Z0LAHukBQHsg,aM4G4g==;
but both seems to fail similar to this
> core debug: adding item `asf.sdp' ( file:///C:/Users/Sezer/Desktop/asf.sdp )
core debug: processing request item: asf.sdp, node: null, skip: 0
core debug: rebuilding array of current - root Playlist
core debug: rebuild done - 7 items, index 6
core debug: starting playback of the new playlist item
core debug: resyncing on asf.sdp
core debug: asf.sdp is at 6
core debug: creating new input thread
core debug: Creating an input for 'asf.sdp'
core debug: Creating an input for 'asf.sdp'
core debug: requesting art for asf.sdp
core debug: using timeshift granularity of 50 MiB, in path 'C:\Users\Sezer\AppData\Local\Temp'
core debug: `
file:///C:/Users/Sezer/Desktop/asf.sdp' gives access `file' demux `' path `/C:/Users/Sezer/Desktop/asf.sdp'
core debug
: specified demux `any'
core debug: creating demux: access='file' demux='any' location='/C:/Users/Sezer/Desktop/asf.sdp' file='C:\Users\Sezer\Desktop\asf.sdp'
core debug: looking for access_demux module matching "file": 12 candidates
core debug: looking for meta fetcher module matching "any": 1 candidates
core debug: no access_demux modules matched
core debug: creating access 'file' location='/C:/Users/Sezer/Desktop/asf.sdp', path='C:\Users\Sezer\Desktop\asf.sdp'
core debug: looking for access module matching "file": 21 candidates
filesystem debug: opening file `
C:\Users\Sezer\Desktop\asf.sdp'
lua debug: Trying Lua scripts in C:\Users\Sezer\AppData\Roaming\vlc\lua\meta\fetcher
core debug: using access module "filesystem"
core debug: Using stream method for AStream*
lua debug: Trying Lua scripts in C:\Program Files (x86)\VideoLAN\VLC\lua\meta\fetcher
core debug: starting pre-buffering
core debug: received first data after 0 ms
core debug: pre-buffering done 193 bytes in 0s - 188476 KiB/s
core debug: looking for stream_filter module matching "any": 6 candidates
core debug: no stream_filter modules matched
lua debug: Trying Lua playlist script C:\Program Files (x86)\VideoLAN\VLC\lua\meta\fetcher\tvrage.luac
core debug: looking for stream_filter module matching "record": 6 candidates
core debug: using stream_filter module "record"
core debug: creating demux: access='
file' demux='any' location='/C:/Users/Sezer/Desktop/asf.sdp' file='C:\Users\Sezer\Desktop\asf.sdp'
core debug: looking for demux module matching "any": 65 candidates
live555 debug: version 2014.07.25
live555 debug: RTP subsession '
video/H264'
core debug: selecting program id=0
core debug: adding item `file.sdp'
( file:///C:/Users/Sezer/Desktop/file.sdp )
live555 debug
: setup start: 0.000000 stop:0.000000
live555 debug
: play start: 0.000000 stop:0.000000
core debug
: using demux module "live555"
lua debug
: skipping script (unmatched scope) C:\Program Files (x86)\VideoLAN\VLC\lua\meta\fetcher\tvrage.luac
core debug
: no meta fetcher modules matched
core debug
: looking for a subtitle file in C:\Users\Sezer\Desktop\
core debug
: searching art for asf.sdp
core debug
: looking for art finder module matching "any": 2 candidates
core debug
: looking for decoder module matching "any": 43 candidates
avcodec debug
: CPU flags: 0x010053db
lua debug
: Trying Lua scripts in C:\Users\Sezer\AppData\Roaming\vlc\lua\meta\art
lua debug
: Trying Lua scripts in C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art
avcodec debug
: trying to use direct rendering
avcodec debug
: allowing 4 thread(s) for decoding
avcodec warning
: threaded frame decoding is not compatible with DXVA2, disabled
lua debug
: Trying Lua playlist script C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\00_musicbrainz.luac
core debug
: meta ok for (null), need to fetch art
core debug
: Creating an input for 'file.sdp'
avcodec debug
: avcodec codec (H264 - MPEG-4 AVC (part 10)) started
avcodec debug
: using slice thread mode with 4 threads
core debug
: using decoder module "avcodec"
core debug
: looking for meta fetcher module matching "any": 1 candidates
core debug
: looking for packetizer module matching "any": 23 candidates
core debug
: using packetizer module "packetizer_h264"
lua debug
: skipping script (unmatched scope) C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\00_musicbrainz.luac
lua debug
: Trying Lua playlist script C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\01_googleimage.luac
lua debug
: Trying Lua scripts in C:\Users\Sezer\AppData\Roaming\vlc\lua\meta\fetcher
lua debug
: Trying Lua scripts in C:\Program Files (x86)\VideoLAN\VLC\lua\meta\fetcher
core debug
: looking for meta reader module matching "any": 2 candidates
lua debug
: Trying Lua playlist script C:\Program Files (x86)\VideoLAN\VLC\lua\meta\fetcher\tvrage.luac
lua debug
: Trying Lua scripts in C:\Users\Sezer\AppData\Roaming\vlc\lua\meta\reader
lua debug
: Trying Lua scripts in C:\Program Files (x86)\VideoLAN\VLC\lua\meta\reader
lua debug
: skipping script (unmatched scope) C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\01_googleimage.luac
lua debug
: Trying Lua playlist script C:\Program Files (x86)\VideoLAN\VLC\lua\meta\reader\filename.luac
lua debug
: Trying Lua playlist script C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\02_frenchtv.luac
lua debug
: skipping script (unmatched scope) C:\Program Files (x86)\VideoLAN\VLC\lua\meta\fetcher\tvrage.luac
core debug
: no meta fetcher modules matched
core debug
: searching art for asf.sdp
core debug
: looking for art finder module matching "any": 2 candidates
core debug
: no meta reader modules matched
lua debug
: skipping script (unmatched scope) C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\02_frenchtv.luac
core debug
: `file:///C:/Users/Sezer/Desktop/asf.sdp' successfully opened
lua debug: Trying Lua playlist script C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\03_lastfm.luac
lua debug: Trying Lua scripts in C:\Users\Sezer\AppData\Roaming\vlc\lua\meta\art
core debug: meta ok for (null), need to fetch art
lua debug: Trying Lua scripts in C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art
lua debug: Trying Lua playlist script C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\00_musicbrainz.luac
lua debug: skipping script (unmatched scope) C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\03_lastfm.luac
core debug: no art finder modules matched
lua debug: skipping script (unmatched scope) C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\00_musicbrainz.luac
core debug: looking for meta fetcher module matching "any": 1 candidates
lua debug: Trying Lua playlist script C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\01_googleimage.luac
lua debug: Trying Lua scripts in C:\Users\Sezer\AppData\Roaming\vlc\lua\meta\fetcher
lua debug: Trying Lua scripts in C:\Program Files (x86)\VideoLAN\VLC\lua\meta\fetcher
lua debug: Trying Lua playlist script C:\Program Files (x86)\VideoLAN\VLC\lua\meta\fetcher\tvrage.luac
lua debug: skipping script (unmatched scope) C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\01_googleimage.luac
lua debug: Trying Lua playlist script C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\02_frenchtv.luac
lua debug: skipping script (unmatched scope) C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\02_frenchtv.luac
lua debug: Trying Lua playlist script C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\03_lastfm.luac
core debug: using meta fetcher module "lua"
core debug: removing module "lua"
core debug: searching art for asf.sdp
core debug: looking for art finder module matching "any": 2 candidates
lua debug: skipping script (unmatched scope) C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\03_lastfm.luac
qt4 debug: IM: Setting an input
core debug: no art finder modules matched
core debug: looking for meta fetcher module matching "any": 1 candidates
lua debug: Trying Lua scripts in C:\Users\Sezer\AppData\Roaming\vlc\lua\meta\art
lua debug: Trying Lua scripts in C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art
lua debug: Trying Lua scripts in C:\Users\Sezer\AppData\Roaming\vlc\lua\meta\fetcher
lua debug: Trying Lua playlist script C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\00_musicbrainz.luac
lua debug: Trying Lua scripts in C:\Program Files (x86)\VideoLAN\VLC\lua\meta\fetcher
lua debug: Trying Lua playlist script C:\Program Files (x86)\VideoLAN\VLC\lua\meta\fetcher\tvrage.luac
lua debug: Trying Lua playlist script C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\01_googleimage.luac
lua debug: skipping script (unmatched scope) C:\Program Files (x86)\VideoLAN\VLC\lua\meta\fetcher\tvrage.luac
core debug: no meta fetcher modules matched
core debug: searching art for file.sdp
core debug: looking for art finder module matching "any": 2 candidates
lua debug: Trying Lua playlist script C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\02_frenchtv.luac
lua debug: Trying Lua scripts in C:\Users\Sezer\AppData\Roaming\vlc\lua\meta\art
lua debug: Trying Lua scripts in C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art
lua debug: Trying Lua playlist script C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\00_musicbrainz.luac
lua debug: Trying Lua playlist script C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\03_lastfm.luac
lua debug: skipping script (unmatched scope) C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\00_musicbrainz.luac
lua debug: Trying Lua playlist script C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\01_googleimage.luac
core debug: no art finder modules matched
core debug: art not found for asf.sdp
lua debug: skipping script (unmatched scope) C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\01_googleimage.luac
lua debug: Trying Lua playlist script C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\02_frenchtv.luac
lua debug: skipping script (unmatched scope) C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\02_frenchtv.luac
lua debug: Trying Lua playlist script C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\03_lastfm.luac
lua debug: skipping script (unmatched scope) C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\03_lastfm.luac
core debug: no art finder modules matched
core debug: looking for meta fetcher module matching "any": 1 candidates
lua debug: Trying Lua scripts in C:\Users\Sezer\AppData\Roaming\vlc\lua\meta\fetcher
lua debug: Trying Lua scripts in C:\Program Files (x86)\VideoLAN\VLC\lua\meta\fetcher
lua debug: Trying Lua playlist script C:\Program Files (x86)\VideoLAN\VLC\lua\meta\fetcher\tvrage.luac
core debug: using meta fetcher module "lua"
core debug: removing module "lua"
core debug: searching art for asf.sdp
core debug: looking for art finder module matching "any": 2 candidates
lua debug: Trying Lua scripts in C:\Users\Sezer\AppData\Roaming\vlc\lua\meta\art
lua debug: Trying Lua scripts in C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art
lua debug: Trying Lua playlist script C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\00_musicbrainz.luac
lua debug: Trying Lua playlist script C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\01_googleimage.luac
lua debug: Trying Lua playlist script C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\02_frenchtv.luac
lua debug: Trying Lua playlist script C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\03_lastfm.luac
core debug: no art finder modules matched
core debug: art not found for asf.sdp
core debug: looking for meta fetcher module matching "any": 1 candidates
lua debug: Trying Lua scripts in C:\Users\Sezer\AppData\Roaming\vlc\lua\meta\fetcher
lua debug: Trying Lua scripts in C:\Program Files (x86)\VideoLAN\VLC\lua\meta\fetcher
lua debug: Trying Lua playlist script C:\Program Files (x86)\VideoLAN\VLC\lua\meta\fetcher\tvrage.luac
core debug: using meta fetcher module "lua"
core debug: removing module "lua"
core debug: searching art for file.sdp
core debug: looking for art finder module matching "any": 2 candidates
lua debug: Trying Lua scripts in C:\Users\Sezer\AppData\Roaming\vlc\lua\meta\art
lua debug: Trying Lua scripts in C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art
lua debug: Trying Lua playlist script C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\00_musicbrainz.luac
lua debug: Trying Lua playlist script C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\01_googleimage.luac
lua debug: Trying Lua playlist script C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\02_frenchtv.luac
lua debug: Trying Lua playlist script C:\Program Files (x86)\VideoLAN\VLC\lua\meta\art\03_lastfm.luac
core debug: no art finder modules matched
core debug: art not found for file.sdp
Can you lead me to the right direction? What should I do to get fair quality and no lag using rtp? What am I doing wrong?


 

Samuel Audet

unread,
Apr 16, 2015, 9:35:48 AM4/16/15
to jav...@googlegroups.com
On 04/15/2015 04:18 PM, Sezer Teleke wrote:
> Can you lead me to the right direction? What should I do to get fair quality and no lag using rtp? What am I doing wrong?

First, let's see if it's a problem with FFmpeg or JavaCV. If you stream
something similar with the `ffmpeg` program on the command line, does it
work?

Samuel

Sezer Teleke

unread,
Apr 17, 2015, 2:50:16 AM4/17/15
to jav...@googlegroups.com
It works with ffmpeg on command line only if I catch the stream with ffmpeg.
If I try to catch with vlc same error saying sdp required.  

Samuel Audet

unread,
Apr 18, 2015, 9:13:52 PM4/18/15
to jav...@googlegroups.com
On 04/17/2015 03:50 PM, Sezer Teleke wrote:
> It works with ffmpeg on command line only if I catch the stream with ffmpeg.
> If I try to catch with vlc same error saying sdp required.

So this is a problem with FFmpeg I guess. If we figure out how to make
it work with the ffmpeg command, we should be able to do the same with
FFmpegFrameRecorder, so let me know if you find any additional
information about how to do it on the command line. It would help a lot,
thanks!

Samuel

Reply all
Reply to author
Forward
0 new messages