Audio Metadata

Stefan Sauer ensonic at hora-obscura.de
Thu Apr 26 12:43:17 PDT 2012


On 04/26/2012 07:53 PM, Sree Gowri wrote:
>
>
> On Wed, Apr 25, 2012 at 12:19 PM, Sree Gowri <sreegowris at gmail.com
> <mailto:sreegowris at gmail.com>> wrote:
>
>
>
>     On Tue, Apr 24, 2012 at 9:42 PM, Sree Gowri <sreegowris at gmail.com
>     <mailto:sreegowris at gmail.com>> wrote:
>
>
>
>         On Tue, Apr 24, 2012 at 5:46 PM, Stefan Sauer
>         <ensonic at hora-obscura.de <mailto:ensonic at hora-obscura.de>> wrote:
>
>             On 04/24/2012 11:18 AM, Sree Gowri wrote:
>>
>>
>>             On Mon, Apr 16, 2012 at 12:53 AM, Stefan Sauer
>>             <ensonic at hora-obscura.de
>>             <mailto:ensonic at hora-obscura.de>> wrote:
>>
>>                 On 04/12/2012 06:23 AM, Sree Gowri wrote:
>>>                 Hi,
>>>
>>>                 I am trying to extract audio metadata like
>>>                 streamurl,streamtitle,artist,genre,album.However I
>>>                 am not able to extract the metadata using
>>>                 GstTagList. Below is the snippet of the code. Does
>>>                 anyone suggest what are the additions to be done in
>>>                 order to extract the metadata?
>>>
>>>                 Only the following data has been extracted.
>>>                              layer: 3
>>>                              mode: joint
>>>                              emphasis: none
>>>                              audio codec: MPEG-1 layer 3
>>>                              bitrate: 128000
>>>
>>>                 Pipeline is as follows:
>>>
>>>                 [code]
>>>                 app->pipeline= gst_parse_launch("appsrc
>>>                 name=mysource ! audio/mpeg  ! mad !  alsasink", NULL);
>>>                 [/code]
>>                 "appsrc name=mysource ! audio/mpeg  ! mp3parse ! mad
>>                 !  alsasink"
>>                 or even better
>>                 "appsrc name=mysource ! audio/mpeg  ! decodebin2! 
>>                 alsasink"
>>
>>                 Stefan
>>
>>>
>>>                 Audio data fed to the appsrc element
>>>
>>>                 [code]
>>>                 buf =( GstBuffer *) gst_app_buffer_new (data,
>>>                 READBUF, g_free, data);
>>>                 g_signal_emit_by_name (GST_APP_SRC (app->appsrc),
>>>                 "push-buffer", buf, &ret);
>>>                 [/code]
>>>
>>>                 Bus message
>>>
>>>                 [code]
>>>                 case GST_MESSAGE_TAG:
>>>                 {
>>>                     GstTagList *tags = NULL;
>>>                         char *artist;
>>>                         gst_message_parse_tag (message, &tags);
>>>                         g_print ("Got tags from element %s:\n",
>>>                 GST_OBJECT_NAME (message->src));
>>>                         if (gst_tag_list_get_string (tags,
>>>                 GST_TAG_ARTIST, &artist))
>>>                         {
>>>                            printf("got artist: %s\n",artist);
>>>                         }
>>>                         else
>>>                         {
>>>                           printf("no artist!! \n");
>>>                         }
>>>                         gst_tag_list_foreach (tags, print_tag, NULL);
>>>                         g_print ("\n");
>>>                         gst_tag_list_free (tags);
>>>                         break;
>>>                 [/code]
>>>
>>>                 print_tag function code
>>>                 [code]
>>>                 static void print_tag (const GstTagList * list,
>>>                 const gchar * tag, gpointer unused)
>>>                 {
>>>                   gint i, count;
>>>                   count = gst_tag_list_get_tag_size (list, tag);
>>>                   for (i = 0; i < count; i++) {
>>>                     gchar *str;
>>>                     if (gst_tag_get_type (tag) == G_TYPE_STRING) {
>>>                       if (!gst_tag_list_get_string_index (list, tag,
>>>                 i, &str))
>>>                         g_assert_not_reached ();
>>>                  
>>>                     } else {
>>>                       str =
>>>                           g_strdup_value_contents
>>>                 (gst_tag_list_get_value_index (list, tag, i));
>>>                     }
>>>                     if (i == 0) {
>>>                       g_print ("  %15s: %s\n", gst_tag_get_nick
>>>                 (tag), str);
>>>                     } else {
>>>                       g_print ("                 : %s\n", str);
>>>                     }
>>>                     g_free (str);
>>>                   }
>>>                 }
>>>                 [/code]
>>>
>>>                 Thanks and Regards,
>>>                 Sree Gowri
>>
>>                   Hi stephan,
>>
>>                   First would like to thank you for the input you
>>             provided.
>>                
>>                   I tried both the pipelines that you have
>>             mentioned,however meta data has not been    extracted.
>>              
>>                  Kindly request you to let me know if there are any
>>             other changes that needs to be done.
>
>             Are you sure the stream you are looking at is tagged with
>             such metadata? Try gst-launch-0.10 -t playbin2 uri=...
>
>             Stefan
>
>
>            Yes the stream contains the metadata like streamTitle,
>         streamUrl. In order to check does the stream really has
>         metadata, appsrc buffer is written to a file and checked using
>         hexedit and I can find the metadata.Sure will try your
>         suggestion tomorrow and update you. Thankyou.
>
>      
>     Regards,
>     Sree Gowri
>
>          Hi Stephan,
>
>           gst-launch-0.10 -t playbin2 uri=.... is also not extracting
>     the metadata.
>
>           Actually I am streaming the shoutcast stream.Audio stream
>     data is feed to the appsrc element.
>         Following is the header that is received
>
>     ICY 200 OK^M
>     icy-notice1:<BR>This stream requires <a
>     href="http://www.winamp.com/">Winamp</a><BR>^M
>     icy-notice2:SHOUTcast Distributed Network Audio Server/win32
>     v1.9.8<BR>^M
>     icy-name:Radio Afsana Online 24/7 Radio - New - Remix: Non-Stop^M
>     icy-genre:Desi, Hindi , Bollywood, Fiji, Indian^M
>     icy-url:http://www.radioafsana.com^M
>     content-type:audio/mpeg^M
>     icy-pub:1^M
>     icy-metaint:8192^M
>     icy-br:128^M
>
>     Metadata is available as "StreamTitle='Aditi Singh Sharma - Luv Ka
>     The End - LUV KA THE END."
>     However I am not able to extract the same.
>
>     Also not able to extract the metadata for the downloaded mp3 file
>     using the following pipelines. However the above command that you
>     mentioned will extract the metadata for the downloaded mp3 file
>
>
>     appsrc name=mysource ! audio/mpeg  ! mad !  alsasink
>     appsrc name=mysource ! audio/mpeg  ! mp3parse ! mad !  alsasink
>     appsrc name=mysource ! audio/mpeg  ! decodebin2 !  alsasink
>
>     Your input would be of great help.
>
>     Regards,
>     Sree Gowri.
>      
>
>
>>              
>>
>>              
>>
>>>
>>>                 _______________________________________________
>>>                 gstreamer-devel mailing list
>>>                 gstreamer-devel at lists.freedesktop.org <mailto:gstreamer-devel at lists.freedesktop.org>
>>>                 http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>
>>
>>                 _______________________________________________
>>                 gstreamer-devel mailing list
>>                 gstreamer-devel at lists.freedesktop.org
>>                 <mailto:gstreamer-devel at lists.freedesktop.org>
>>                 http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>
>>
>>
>>             _______________________________________________
>>             gstreamer-devel mailing list
>>             gstreamer-devel at lists.freedesktop.org <mailto:gstreamer-devel at lists.freedesktop.org>
>>             http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
>             _______________________________________________
>             gstreamer-devel mailing list
>             gstreamer-devel at lists.freedesktop.org
>             <mailto:gstreamer-devel at lists.freedesktop.org>
>             http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
>     Hi Stephan,
>
>
> I am still stuck with metadata parsing as mentioned earlier. Could you
> please help me.
>
> Thanks and Regards,
> Sree Gowri

Just tried te winamp stream from http://www.radioafsana.com and it works
fine (use the uri from inside the listen.pls).

Stefan

gst-launch -t playbin2 uri=http://208.186.112.40:8000/
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
FOUND TAG      : found by element "source".
    organization: Radio Afsana Online 24/7 Radio - New - Remix: Non-Stop
           genre: Desi, Hindi , Bollywood, Fiji, Indian
        location: http://www.radioafsana.com
FOUND TAG      : found by element "icydemux0".
    organization: Radio Afsana Online 24/7 Radio - New - Remix: Non-Stop
           genre: Desi, Hindi , Bollywood, Fiji, Indian
        location: http://www.radioafsana.com
FOUND TAG      : found by element "mpegaudioparse0".
     audio codec: MPEG 2 Audio, Layer 3 (MP3)
 nominal bitrate: 24000
FOUND TAG      : found by element "mpegaudioparse0".
         has crc: FALSE
    channel mode: mono
FOUND TAG      : found by element "mad0".
     audio codec: MPEG-1 Layer 3 (MP3)
FOUND TAG      : found by element "mpegaudioparse0".
 minimum bitrate: 24193
         bitrate: 24010
 maximum bitrate: 24193
FOUND TAG      : found by element "mpegaudioparse0".
 minimum bitrate: 23887
Prerolled, waiting for buffering to finish...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstPulseSinkClock
FOUND TAG      : found by element "icydemux0".
           title: Shahid Mallya - Rabba Main Toh Mar Gaya Oye - MAUSAM
[2011]



>
>
> _______________________________________________
> 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/20120426/cfa5cf3b/attachment-0001.htm>


More information about the gstreamer-devel mailing list