<div dir="ltr"><div><div><div><div><div><div><div>Hi Chuck.<br><br></div>Thanks for your suggestion.<br><br></div>I don't see much else of interesting info from other elements than rtmpsink. Below is an extract of the debug=8 output (perhaps level=5 is max) .I've included a little bit of the pad capability listing too.<br>
<br></div>As you can see, rtmpsink gets to send about 92k of data before it quits with the message RTMP send error 104. It quits roughly 5 times out of 6 with that message and sometimes it just quits (without the RTMP send error).<br>
<br></div>Suggestions are very welcome .Perhaps rtmpsink just doesn't work with YouTube Live for yet unknown reasons. However largely same setup works with UStream. And I have checked that the URL works with a Flash Live Media Encoder sending to YouTube. Perhaps some yet to me unknown mode is invoked by the Flash Live Media Encoder, a mode not yet supported by rtmpsink.<br>
<br></div>Anyway, as written, suggestions are very welcome. It would be rather cool if we can get GStreamer and rtmpsink to work with YouTube Live.<br><br></div>Best regards<br></div>Peter<br><div><div><div><div><div><br>
/GstPipeline:pipeline0/GstFaac:faac0.GstPad:sink: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)44100, channels=(int)1, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_MONO ><br>
/GstPipeline:pipeline0/GstFlvMux:mux.GstPad:audio: caps = audio/mpeg, mpegversion=(int)2, channels=(int)1, rate=(int)44100, stream-format=(string)raw, codec_data=(buffer)<br>/GstPipeline:pipeline0/GstX264Enc:x264enc0.GstPad:src: caps = video/x-h264, width=(int)640, height=(int)360, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, codec_data=(buffer)014d4029ffe10018674d4029eca05017fcb8088000000300bb9aca00078c18cb01000468ebecb2, stream-format=(string)avc, alignment=(string)au, level=(string)4.1, profile=(string)main<br>
/GstPipeline:pipeline0/GstX264Enc:x264enc0.GstPad:sink: caps = video/x-raw-yuv, level=(string)4.1, profile=(string)main, format=(fourcc)YV12, framerate=(fraction)30/1, width=(int)640, height=(int)360, color-matrix=(string)sdtv, chroma-site=(string)mpeg2<br>
/GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:src: caps = video/x-h264, width=(int)640, height=(int)360, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, codec_data=(buffer)014d4029ffe10018674d4029eca05017fcb8088000000300bb9aca00078c18cb01000468ebecb2, stream-format=(string)avc, alignment=(string)au, level=(string)4.1, profile=(string)main<br>
/GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:sink: caps = video/x-h264, width=(int)640, height=(int)360, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, codec_data=(buffer)014d4029ffe10018674d4029eca05017fcb8088000000300bb9aca00078c18cb01000468ebecb2, stream-format=(string)avc, alignment=(string)au, level=(string)4.1, profile=(string)main<br>
/GstPipeline:pipeline0/GstFlvMux:mux.GstPad:video: caps = video/x-h264, width=(int)640, height=(int)360, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, codec_data=(buffer)014d4029ffe10018674d4029eca05017fcb8088000000300bb9aca00078c18cb01000468ebecb2, stream-format=(string)avc, alignment=(string)au, level=(string)4.1, profile=(string)main<br>
/GstPipeline:pipeline0/GstFlvMux:mux.GstPad:src: caps = video/x-flv, streamheader=(buffer)< 464c5601050000000900000000, 120000f50000000000000002000a6f6e4d65746144617461080000000a000c766964656f636f646563696400401c000000000000000577696474680040840000000000000006686569676874004076800000000000000c417370656374526174696f58003ff0000000000000000c417370656374526174696f59003ff000000000000000096672616d657261746500403e000000000000000c617564696f636f6465636964004024000000000000000f6d6574616461746163726561746f720200134753747265616d657220464c56206d75786572000c6372656174696f6e6461746502001753756e204d617920352032303a35383a3539203230313300000900000100, 0900002c000000000000001700000000014d4029ffe10018674d4029eca05017fcb8088000000300bb9aca00078c18cb01000468ebecb200000037, 0800000200000000000000af000000000d ><br>
/GstPipeline:pipeline0/GstRTMPSink:rtmpsink0.GstPad:sink: caps = video/x-flv, streamheader=(buffer)< 464c5601050000000900000000, 120000f50000000000000002000a6f6e4d65746144617461080000000a000c766964656f636f646563696400401c000000000000000577696474680040840000000000000006686569676874004076800000000000000c417370656374526174696f58003ff0000000000000000c417370656374526174696f59003ff000000000000000096672616d657261746500403e000000000000000c617564696f636f6465636964004024000000000000000f6d6574616461746163726561746f720200134753747265616d657220464c56206d75786572000c6372656174696f6e6461746502001753756e204d617920352032303a35383a3539203230313300000900000100, 0900002c000000000000001700000000014d4029ffe10018674d4029eca05017fcb8088000000300bb9aca00078c18cb01000468ebecb200000037, 0800000200000000000000af000000000d ><br>
Pipeline is PREROLLED ...<br>Setting pipeline to PLAYING ...<br>New clock: GstSystemClock<br>0:00:00.812604837 4391 0x1e590f0 DEBUG rtmpsink gstrtmpsink.c:235:gst_rtmp_sink_render:<rtmpsink0> Opened connection to rtmp://<a href="http://a.rtmp.youtube.com/live2/STREAMNAME_REMOVED">a.rtmp.youtube.com/live2/STREAMNAME_REMOVED</a><br>
0:00:00.812654112 4391 0x1e590f0 LOG rtmpsink gstrtmpsink.c:241:gst_rtmp_sink_render:<rtmpsink0> Caching first buffer of size 13 for concatenation<br>0:00:00.812694629 4391 0x1e590f0 LOG rtmpsink gstrtmpsink.c:249:gst_rtmp_sink_render:<rtmpsink0> Joining 2nd buffer of size 260 to cached buf<br>
0:00:00.812722484 4391 0x1e590f0 LOG rtmpsink gstrtmpsink.c:256:gst_rtmp_sink_render:<rtmpsink0> Sending 273 bytes to RTMP server<br>0:00:00.812778812 4391 0x1e590f0 LOG rtmpsink gstrtmpsink.c:256:gst_rtmp_sink_render:<rtmpsink0> Sending 59 bytes to RTMP server<br>
0:00:00.812813232 4391 0x1e590f0 LOG rtmpsink gstrtmpsink.c:256:gst_rtmp_sink_render:<rtmpsink0> Sending 17 bytes to RTMP server<br>0:00:00.812894371 4391 0x1e590f0 LOG rtmpsink gstrtmpsink.c:256:gst_rtmp_sink_render:<rtmpsink0> Sending 166 bytes to RTMP server<br>
0:00:00.813448928 4391 0x1e59050 LOG rtmpsink gstrtmpsink.c:256:gst_rtmp_sink_render:<rtmpsink0> Sending 9302 bytes to RTMP server<br>0:00:00.815407311 4391 0x1e590f0 LOG rtmpsink gstrtmpsink.c:256:gst_rtmp_sink_render:<rtmpsink0> Sending 132 bytes to RTMP server<br>
0:00:00.815900534 4391 0x1e59050 LOG rtmpsink gstrtmpsink.c:256:gst_rtmp_sink_render:<rtmpsink0> Sending 130 bytes to RTMP server<br>0:00:00.816342378 4391 0x1e59050 LOG rtmpsink gstrtmpsink.c:256:gst_rtmp_sink_render:<rtmpsink0> Sending 129 bytes to RTMP server<br>
0:00:00.816862090 4391 0x1e59050 LOG rtmpsink gstrtmpsink.c:256:gst_rtmp_sink_render:<rtmpsink0> Sending 136 bytes to RTMP server<br>0:00:00.817290072 4391 0x1e59050 LOG rtmpsink gstrtmpsink.c:256:gst_rtmp_sink_render:<rtmpsink0> Sending 5841 bytes to RTMP server<br>
0:00:00.818967597 4391 0x1e590f0 LOG rtmpsink gstrtmpsink.c:256:gst_rtmp_sink_render:<rtmpsink0> Sending 5849 bytes to RTMP server<br>0:00:00.820808038 4391 0x1e590f0 LOG rtmpsink gstrtmpsink.c:256:gst_rtmp_sink_render:<rtmpsink0> Sending 5858 bytes to RTMP server<br>
0:00:00.822764003 4391 0x1e590f0 LOG rtmpsink gstrtmpsink.c:256:gst_rtmp_sink_render:<rtmpsink0> Sending 131 bytes to RTMP server<br>0:00:00.823313489 4391 0x1e59050 LOG rtmpsink gstrtmpsink.c:256:gst_rtmp_sink_render:<rtmpsink0> Sending 132 bytes to RTMP server<br>
0:00:00.823740494 4391 0x1e59050 LOG rtmpsink gstrtmpsink.c:256:gst_rtmp_sink_render:<rtmpsink0> Sending 129 bytes to RTMP server<br>0:00:00.824154593 4391 0x1e59050 LOG rtmpsink gstrtmpsink.c:256:gst_rtmp_sink_render:<rtmpsink0> Sending 133 bytes to RTMP server<br>
0:00:00.824576933 4391 0x1e59050 LOG rtmpsink gstrtmpsink.c:256:gst_rtmp_sink_render:<rtmpsink0> Sending 5753 bytes to RTMP server<br>0:00:00.852905074 4391 0x1e590f0 LOG rtmpsink gstrtmpsink.c:256:gst_rtmp_sink_render:<rtmpsink0> Sending 5846 bytes to RTMP server<br>
0:00:00.854825476 4391 0x1e590f0 LOG rtmpsink gstrtmpsink.c:256:gst_rtmp_sink_render:<rtmpsink0> Sending 5741 bytes to RTMP server<br>0:00:00.856572691 4391 0x1e590f0 LOG rtmpsink gstrtmpsink.c:256:gst_rtmp_sink_render:<rtmpsink0> Sending 136 bytes to RTMP server<br>
0:00:00.857108289 4391 0x1e59050 LOG rtmpsink gstrtmpsink.c:256:gst_rtmp_sink_render:<rtmpsink0> Sending 136 bytes to RTMP server<br>0:00:00.857549728 4391 0x1e59050 LOG rtmpsink gstrtmpsink.c:256:gst_rtmp_sink_render:<rtmpsink0> Sending 139 bytes to RTMP server<br>
0:00:00.857983149 4391 0x1e59050 LOG rtmpsink gstrtmpsink.c:256:gst_rtmp_sink_render:<rtmpsink0> Sending 5847 bytes to RTMP server<br>0:00:00.859692554 4391 0x1e590f0 LOG rtmpsink gstrtmpsink.c:256:gst_rtmp_sink_render:<rtmpsink0> Sending 5768 bytes to RTMP server<br>
0:00:00.861227906 4391 0x1e590f0 LOG rtmpsink gstrtmpsink.c:256:gst_rtmp_sink_render:<rtmpsink0> Sending 139 bytes to RTMP server<br>0:00:00.861721182 4391 0x1e59050 LOG rtmpsink gstrtmpsink.c:256:gst_rtmp_sink_render:<rtmpsink0> Sending 149 bytes to RTMP server<br>
0:00:00.862153646 4391 0x1e59050 LOG rtmpsink gstrtmpsink.c:256:gst_rtmp_sink_render:<rtmpsink0> Sending 146 bytes to RTMP server<br>0:00:00.862577417 4391 0x1e59050 LOG rtmpsink gstrtmpsink.c:256:gst_rtmp_sink_render:<rtmpsink0> Sending 145 bytes to RTMP server<br>
0:00:00.863008600 4391 0x1e59050 LOG rtmpsink gstrtmpsink.c:256:gst_rtmp_sink_render:<rtmpsink0> Sending 5799 bytes to RTMP server<br>0:00:00.864681394 4391 0x1e590f0 LOG rtmpsink gstrtmpsink.c:256:gst_rtmp_sink_render:<rtmpsink0> Sending 5791 bytes to RTMP server<br>
0:00:00.872594409 4391 0x1e590f0 LOG rtmpsink gstrtmpsink.c:256:gst_rtmp_sink_render:<rtmpsink0> Sending 5753 bytes to RTMP server<br>ERROR: WriteN, RTMP send error 104 (140 bytes)<br><br><br><br>
</div></div></div></div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Apr 24, 2013 at 3:50 PM, Chuck Crisler <span dir="ltr"><<a href="mailto:ccrisler@mutualink.net" target="_blank">ccrisler@mutualink.net</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Turn on logging to get more info. Logging can deluge you, so start slowly until you get enough info to narrow down. Start with something like 'export GST_DEBUG=*:3', which will give you a lot of messages. Then pick out the very few (1-2-3) elements that are interesting and set a higher debugging level for them (and disabling logging for everything else). Something like 'export GST_DEBUG=element1:4,element2:4'<br>
<br></div>Then post the logs if the answer isn't obvious.<br><br><br></div><div class="gmail_extra"><br><br><div class="gmail_quote"><div><div class="h5">On Wed, Apr 24, 2013 at 8:15 AM, Peter Maersk-Moller <span dir="ltr"><<a href="mailto:pmaersk@gmail.com" target="_blank">pmaersk@gmail.com</a>></span> wrote:<br>
</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div dir="ltr"><div><div><div><div><div><div><div>Hi.<br><br></div>A little update on using GStreamer to generate a live stream for YouTube Live. Using the following information, the pipeline gets a little bit further.<br>
<br></div> .... ! flvmux streamable=true name=mux ! rtmpsink location="$LOCATION"<br><br></div>Here LOCATION is now defined as follows<br><br></div> LOCATION="<span style="text-indent:0px;letter-spacing:normal;font-variant:normal;text-align:left;font-style:normal;display:inline!important;font-weight:normal;float:none;line-height:11px;color:rgb(51,51,51);text-transform:none;font-size:11px;white-space:normal;font-family:arial,sans-serif;word-spacing:0px">Primary Server URL/</span><span style="text-indent:0px;letter-spacing:normal;font-variant:normal;text-align:left;font-style:normal;display:inline!important;font-weight:normal;float:none;line-height:11px;color:rgb(51,51,51);text-transform:none;font-size:11px;white-space:normal;font-family:arial,sans-serif;word-spacing:0px">Stream Name</span> live=1 flashver=FME/3.0\20(compatible;\20FMSc\201.0) "<br>
<br><span style="text-indent:0px;letter-spacing:normal;font-variant:normal;text-align:left;font-style:normal;display:inline!important;font-weight:normal;float:none;line-height:11px;color:rgb(51,51,51);text-transform:none;font-size:11px;white-space:normal;font-family:arial,sans-serif;word-spacing:0px">Primary Server URL</span> and<span style="text-indent:0px;letter-spacing:normal;font-variant:normal;text-align:left;font-style:normal;display:inline!important;font-weight:normal;float:none;line-height:11px;color:rgb(51,51,51);text-transform:none;font-size:11px;white-space:normal;font-family:arial,sans-serif;word-spacing:0px"> Stream Name</span> is copied from the settings from the live event created for the YouTube account.<br>
<br></div>Nevertheless the script now fails with the following message after apparently setting up communication with the YouTube servers.<div><br><br> Pipeline is PREROLLED ...<br> Setting pipeline to PLAYING ...<br>
New clock: GstSystemClock<br></div>
ERROR: WriteN, RTMP send error 104 (126 bytes)<br><br></div>Anybody know what that is?<br><br></div>Best regards<div><div><br><div><div><div><br><div class="gmail_extra"><div class="gmail_quote">On Mon, Apr 22, 2013 at 11:57 PM, Peter Maersk-Moller <span dir="ltr"><<a href="mailto:pmaersk@gmail.com" target="_blank">pmaersk@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div><div><div><div>Hi.<br><br></div>I was wondering if anybody has been successful streaming to the YouTube Live streaming servers using GStreamer?<br>
<br></div>I get the following error message which I believe indicates that YouTube doesn't accept my data:<br>
<br> Pipeline is PREROLLED ...<br> Setting pipeline to PLAYING ...<br> New clock: GstSystemClock<br> ERROR: RTMP_ReadPacket, failed to read RTMP packet header<br> ERROR: from element /GstPipeline:pipeline0/GstRTMPSink:rtmpsink0: Could not open resource for writing. <br>
Additional debug info:<br> gstrtmpsink.c(228): gst_rtmp_sink_render (): /GstPipeline:pipeline0 /GstRTMPSink:rtmpsink0:<br> Could not connect to RTMP stream "rtmp://<a href="http://a.rtmp.youtube.com/videolive?........" target="_blank">a.rtmp.youtube.com/videolive?........</a>..<br>
<br></div>I am using the following script that works great for UStream, but not for YouTube LIve. Anybody got any good suggestion?<br><br></div>Best regards<br></div>Peter<br><div><div><br>================<br>#!/bin/bash<br>
if [ $# != 1 ] ; then exit ; fi<br>AUDIOFORMAT='audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)44100, channels=(int)1'<br>case $1 in<br> you|youtube)<br> width=1280<br>
height=720<br> framerate='30/1'<br> videoencoder="x264enc bitrate=2000 profile=main bframes=2"<br> videomode='video/x-h264, width=(int)1280, height=(int)720, framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)1/1, profile=(string)main'<br>
videomode='video/x-h264, profile=main'<br> audioencoder="faac bitrate=64000 profile=2"<br> location="rtmp://<a href="http://a.rtmp.youtube.com/videolive?signature=REMOVED_FOR" target="_blank">a.rtmp.youtube.com/videolive?signature=REMOVED_FOR</a> OBVIOUS_REASONS flashver=FME/3.0\20(compatible;\20FMSc\201.0)"<br>
<br> ;;<br> ustream)<br> width=1024<br> height=576<br> framerate='25/1'<br> videoencoder="x264enc bitrate=800 bframes=0"<br> videomode='queue'<br> audioencoder="lame mode=3 bitrate=64"<br>
location="rtmp://<a href="http://SOMETHING.fme.ustream.tv/ustreamVideo/SOMETHING/MORESOMETHING" target="_blank">SOMETHING.fme.ustream.tv/ustreamVideo/SOMETHING/MORESOMETHING</a>' flashver=FME/3.0\20(compatible;\20FMSc\201.0)'"<br>
;;<br> *) echo 'Use youtube or ustream'<br> exit<br>esac<br><br>gst-launch -v videotestsrc !\<br> 'video/x-raw-yuv, framerate='$framerate', width='$width', height='$height !\<br>
ffmpegcolorspace !\<br> $videoencoder !\<br> "$videomode" !\<br> mux. audiotestsrc !\<br> $AUDIOFORMAT !\<br>
$audioencoder !\<br> flvmux streamable=true name=mux !\<br> rtmpsink location="$location"<br><br>==================<br><br><br><br></div></div></div> </blockquote></div></div>
</div></div></div></div></div></div>
<br></div></div>_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank">gstreamer-devel@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
<br></blockquote></div><br></div>
<br>_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
<br></blockquote></div><br></div>