video not displayed with the use of rtp
Chuck Crisler
ccrisler at mutualink.net
Mon Jun 22 14:29:41 PDT 2015
Just a quick guess...but have you tried stopping the firewall? sudo
iptables stop
On Sat, Jun 20, 2015 at 6:06 AM, gagankumarnigam <gagankumarnigam at bel.co.in>
wrote:
> Hi all,
>
> i have taken demo-send.cpp(from net which is given below) example compiled
> and run on one system .It is Running successfully without any error and
> also
> showing display.
>
> however on client i gave cmd line argument which is running well but not
> given any display: It is like that
>
> [arcgis at localhost Desktop]$ gst-launch -v udpsrc port=8999
> caps="application/x-rtp,payload=96,encoding-name=H264" ! rtph264depay !
> h264parse ! ffdec_h264 ! autovideosink
>
> and o/p is
>
> Pipeline is live and does not need PREROLL ...
> Setting pipeline to PLAYING ...
> New clock: GstSystemClock
>
> but no display..................
>
> Can any one suggest me what is the errrrrrrrrrrrrrrrrrrrrrrrrrrr here??
> Server side code is given below
>
> ************demo.server.cpp*******************
>
> #include<gst/gst.h>
> #define RECV_IP "192.168.1.3"
>
> static gboolean
> bus_call( GstBus *bus,GstMessage *msg, gpointer data )
> {
> GMainLoop *loop = ( GMainLoop* )data;
> switch( GST_MESSAGE_TYPE( msg )) {
> case GST_MESSAGE_EOS:
> g_print ( "End-of-stream\n" );
> g_main_loop_quit( loop );
> break;
> case GST_MESSAGE_ERROR: {
> gchar *debug;
> GError* err;
> gst_message_parse_error(
> msg,&err,&debug );
> g_print ( "Error: %s\n", err
> ->message );
> g_error_free( err );
> g_main_loop_quit ( loop );
> break;
> }
> default:
> break;
> }
> return TRUE;
> }
>
> int main(int argc, char* argv[])
> {
> GstElement *pipeline, *source,*queue,*videoscale,*capsfilter;
> GstElement *ffmpegcs, *encoder, *rtph264pay;
> GstElement *rtpbin, *udpsink_rtp, *udpsink_rtcp,*udpsrc_rtcp;
> GstElement *sink, *tee, *queuesave,*queuesend;
> GstElement *filesink;
> GstElement *ffmpegcsd;
> GMainLoop *loop;
> gboolean ret = FALSE;
> int port = 4030;
> GstCaps* caps;
> gchar* name;
> GstPad* sinkpad;
> GstCaps* sinkcaps;
>
> gint* port2;
> //GstStaticCaps staticcaps;
>
> gst_init (&argc, &argv);
> caps = gst_caps_from_string(
> "video/x-raw-yuv,width=320,height=240" );//
> GST_STATIC_CAPS( "video/x-raw-yuv,width=320,height=240" );
> //staticcaps = GST_STATIC_CAPS(
> "video/x-raw-yuv,width=320,height=240" );//
> GST_STATIC_CAPS( "video/x-raw-yuv,width=320,height=240" );
> loop = g_main_loop_new( NULL,FALSE );
>
> pipeline = gst_pipeline_new( "video-send" );
> source = gst_element_factory_make ( "v4l2src","file-source"
> );
> queue = gst_element_factory_make ( "queue", "queue" );
> videoscale = gst_element_factory_make ( "videoscale",
> "videoscale" );
> capsfilter = gst_element_factory_make ( "capsfilter",
> "capsfilter" );
> ffmpegcs = gst_element_factory_make ( "ffmpegcolorspace",
> "ffmpegcs"
> );
> ffmpegcsd = gst_element_factory_make ( "ffmpegcolorspace",
> "ffmpegcsd"
> );
> encoder = gst_element_factory_make ( "x264enc", "encoder" );
> rtph264pay = gst_element_factory_make ( "rtph264pay",
> "rtph264pay" );
> rtpbin = gst_element_factory_make ( "gstrtpbin",
> "rtpbin" );
> udpsink_rtp = gst_element_factory_make ( "udpsink",
> "udpsink-send data"
> );
> udpsink_rtcp = gst_element_factory_make ( "udpsink",
> "udpsink-rtcp" );
> udpsrc_rtcp = gst_element_factory_make ( "udpsrc",
> "udpsrc-rtcp" );
> sink = gst_element_factory_make ( "autovideosink", "sink"
> );
> filesink = gst_element_factory_make ( "filesink", "filesink"
> );
> tee = gst_element_factory_make ( "tee", "tee" );
> queuesave = gst_element_factory_make ( "queue", "queuesave" );
> queuesend = gst_element_factory_make ( "queue", "queuesend" );
>
>
> if( !pipeline || !source || !queue || !videoscale || !capsfilter
> ||
> !ffmpegcs || !encoder || !rtph264pay || !rtpbin ||
> !udpsink_rtp || !udpsink_rtcp || !udpsrc_rtcp ||
> !ffmpegcsd ) {
> g_print ( "One element could not be created \n" );
> return -1;
> }
>
> g_object_set( G_OBJECT ( filesink ), "location", "./test.txt",
> NULL );
> g_object_set( G_OBJECT ( capsfilter ), "caps", caps, NULL );
> g_object_set( G_OBJECT ( encoder ), "bitrate", 100000, NULL);
>
> g_object_set( G_OBJECT ( udpsink_rtp ), "host", RECV_IP, NULL );
> g_object_set( G_OBJECT ( udpsink_rtp ), "port", 10000, NULL );
> g_object_set( G_OBJECT ( udpsink_rtcp ),"host", RECV_IP, NULL );
> g_object_set( G_OBJECT ( udpsink_rtcp ), "port", 10001, NULL );
> g_object_set( G_OBJECT ( udpsrc_rtcp ), "port", 10002, NULL );
>
>
> //gst_bus_add_watch( gst_pipeline_get_bus( GST_PIPELINE( pl_send )
> ),
> //bus_call,loop );
> #if 0
> gst_bin_add_many( GST_BIN( pipeline ), source, queue, videoscale,
> capsfilter,
> ffmpegcs, queuesave,queuesend, tee, filesink, sink, NULL);
> ret = gst_element_link_many( source, capsfilter, ffmpegcs,queue,
> tee, NULL
> );
> ret = gst_element_link_many( tee, queuesend, sink, NULL );
> ret = gst_element_link_many( tee, queuesave, filesink, NULL );
> //ret = gst_element_link_many( source, queue, filesink, NULL );
>
> /*gst_bin_add_many( GST_BIN( pipeline ), source, queue, videoscale,
> capsfilter,
> ffmpegcs, encoder, rtph264pay, udpsink_rtp, udpsink_rtcp,
> udpsrc_rtcp,
> rtpbin, NULL);
> ret = gst_element_link_many( source, queue, videoscale, capsfilter,
> ffmpegcs, encoder, udpsink_rtp, NULL );*/
>
> #else
> gst_bin_add_many( GST_BIN( pipeline ), source,ffmpegcs,
> capsfilter, queue,
> tee,
> encoder,queuesend,rtph264pay, rtpbin,udpsink_rtp,
> udpsink_rtcp,
> udpsrc_rtcp,
> queuesave, ffmpegcsd, sink, NULL);
>
> ret = gst_element_link_many( source, capsfilter,ffmpegcs, queue,
> tee, NULL
> );
>
> ret = gst_element_link_many( tee, queuesave,ffmpegcsd, sink, NULL
> );
> ret = gst_element_link_many( tee, queuesend, encoder, rtph264pay,
> NULL );
> ret = gst_element_link_pads_filtered( rtph264pay, "src", rtpbin,
> "send_rtp_sink_0", NULL );
> ret = gst_element_link_pads_filtered( rtpbin, "send_rtp_src_0",
> udpsink_rtp, "sink", NULL );
> ret = gst_element_link_pads_filtered( rtpbin, "send_rtcp_src_0",
> udpsink_rtcp,"sink", NULL );
> ret = gst_element_link_pads_filtered( udpsrc_rtcp, "src", rtpbin,
> "recv_rtcp_sink_0", NULL );
> #endif
> g_print ( "Setting to sending data\n" );
> gst_element_set_state ( pipeline, GST_STATE_PLAYING );
> gst_element_set_locked_state( udpsink_rtcp, TRUE );
>
> /*sinkpad = gst_element_get_pad( udpsink_rtp, "sink" );
> sinkcaps = gst_caps_new_simple( NULL, NULL );
> g_object_get( G_OBJECT ( udpsink_rtp ), "caps", sinkcaps, NULL );
> sinkcaps = gst_pad_get_caps( sinkpad );
> name = gst_caps_to_string( sinkcaps );*/
>
> g_main_loop_run( loop );
>
>
>
> g_print ( "returned ,stopping playback\n" );
> gst_element_set_state( pipeline, GST_STATE_NULL );
>
> g_print ( "Deleting pipeline\n" );
> gst_object_unref( GST_OBJECT ( pipeline ) );
>
> return 0;
> }
>
>
>
>
> --
> View this message in context:
> http://gstreamer-devel.966125.n4.nabble.com/video-not-displayed-with-the-use-of-rtp-tp4672364.html
> Sent from the GStreamer-devel mailing list archive at Nabble.com.
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
--
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20150622/3d17d677/attachment.html>
More information about the gstreamer-devel
mailing list