<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
Hi,<br><br>I managed to play back the stream live using VLC ( buffer time 100ms) . On the server I'm using<br><br>&nbsp;gst-launch-0.10 -v filesrc location=./audiotest1.pcma blocksize=800&nbsp; do-timestamp=true ! audio/x-alaw, rate=8000, channels=1&nbsp; ! queue ! rtppcmapay&nbsp;&nbsp; ! udpsink host=x.x.x.x port=1234<br><br><br>Perhaps I can't play it back live using gstreamer because of a bug ?<br><br>John<br><hr id="stopSpelling">From: johnwpoliver@hotmail.com<br>To: gstreamer-devel@lists.sourceforge.net<br>Date: Mon, 5 Oct 2009 00:20:39 +0100<br>Subject: [gst-devel] alsasrc ! alawenc ! rtppcmapay ! udpsink - can receive, record then playback, but not playback live.<br><br>



<style>
.ExternalClass .ecxhmmessage P
{padding:0px;}
.ExternalClass body.ecxhmmessage
{font-size:10pt;font-family:Verdana;}
</style>


Hi all,<br><br>I'm trying to stream a live source encoded as pcm ulaw over rtp over udp. I'm able to send it out on one side using gst-launch,&nbsp; and on the client side I can save the stream to a file, then play it back. But I'd like to be able to play it back live on the client side, which I'm unable to do. <br><br>My server<br><br>&nbsp;gst-launch-0.10 -v alsasrc&nbsp;&nbsp; do-timestamp=true&nbsp; !&nbsp; audioconvert ! audioresample ! alawenc ! rtppcmapay&nbsp; ! udpsink host=127.0.0.1 port=1234 <br><br>/GstPipeline:pipeline0/GstAlsaSrc:alsasrc0: actual-buffer-time = 200000<br>/GstPipeline:pipeline0/GstAlsaSrc:alsasrc0: actual-latency-time = 10000<br>/GstPipeline:pipeline0/GstAlsaSrc:alsasrc0.GstPad:src: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)8000, channels=(int)2<br>Pipeline is live and does not need PREROLL ...<br>Setting pipeline to PLAYING ...<br>New clock: GstAudioSrcClock<br>[snip]<br>/GstPipeline:pipeline0/GstRtpPmcaPay:rtppmcapay0.GstPad:sink: caps = audio/x-alaw, rate=(int)8000, channels=(int)1<br>/GstPipeline:pipeline0/GstUDPSink:udpsink0.GstPad:sink: caps = application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)PCMA, payload=(int)8, ssrc=(guint)2636653180, clock-base=(guint)4163613013, seqnum-base=(guint)41237<br><br>On the client<br>receive and record:<br><br>gst-launch-0.10 -v udpsrc port=1234 caps="application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)PCMA, payload=(int)8, ssrc=(guint)3682605153, clock-base=(guint)600325920, seqnum-base=(guint)34884" !&nbsp; rtppcmadepay&nbsp; ! filesink location=./received.pcma<br><br>then playback:<br>&nbsp;gst-launch-0.10 -v filesrc location=./received.pcma&nbsp; !&nbsp; audio/x-alaw, rate=8000, channels=1 ! alawdec !&nbsp; alsasink&nbsp; blocksize=32<br><br>The above works ok. <br><br>But when I'm trying to use the following to playback live ..<br><br>&nbsp;gst-launch-0.10 -v udpsrc&nbsp; do-timestamp=true port=1234 caps="application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)PCMA, payload=(int)8, ssrc=(guint)3682605153, clock-base=(guint)600325920, seqnum-base=(guint)34884"&nbsp; ! rtppcmadepay&nbsp; ! audio/x-alaw, rate=8000, channels=1&nbsp; ! alawdec&nbsp; ! alsasink <br><br><br>I don't hear anything ( apart from the odd glitch) . It tells me .. <br><br>Setting pipeline to PAUSED ...<br>Pipeline is live and does not need PREROLL ...<br>Setting pipeline to PLAYING ...<br>New clock: GstSystemClock<br>/GstPipeline:pipeline0/GstRtpPcmaDepay:rtppcmadepay0.GstPad:src: caps = audio/x-alaw, channels=(int)1, rate=(int)8000<br>/GstPipeline:pipeline0/GstRtpPcmaDepay:rtppcmadepay0.GstPad:sink: caps = application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)PCMA, payload=(int)8, ssrc=(guint)3682605153, clock-base=(guint)600325920, seqnum-base=(guint)34884<br>/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = audio/x-alaw, channels=(int)1, rate=(int)8000<br>/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = audio/x-alaw, channels=(int)1, rate=(int)8000<br>/GstPipeline:pipeline0/GstALawDec:alawdec0.GstPad:src: caps = audio/x-raw-int, width=(int)16, depth=(int)16, endianness=(int)1234, signed=(boolean)true, rate=(int)8000, channels=(int)1<br>/GstPipeline:pipeline0/GstALawDec:alawdec0.GstPad:sink: caps = audio/x-alaw, channels=(int)1, rate=(int)8000<br>/GstPipeline:pipeline0/GstAlsaSink:alsasink0.GstPad:sink: caps = audio/x-raw-int, width=(int)16, depth=(int)16, endianness=(int)1234, signed=(boolean)true, rate=(int)8000, channels=(int)1<br><br>This is the same caps I see when I playback from the recorded file, almost, where the alawdec sink buffer size is 4096 ..<br><br><br><br>/GstPipeline:pipeline0/GstALawDec:alawdec0.GstPad:sink: caps = audio/x-alaw, rate=(int)8000, channels=(int)1<br>alawdec: buffer size: 4096<br>/GstPipeline:pipeline0/GstAlsaSink:alsasink0.GstPad:sink: caps = audio/x-raw-int, width=(int)16, depth=(int)16, endianness=(int)1234, signed=(boolean)true, rate=(int)8000, channels=(int)1<br><br>Can anybody spot any glaring mistakes or perhaps give me any pointers, please.<br><br>John<br><br>                                               </body>
</html>