Воспроизведение PCM-файла с помощью Gstreamer

Я создал файл pcm с помощью этого приложения для Android: https://github.com/roman10/roman10-android-tutorial/tree/master/AndroidPCMRecorder

Теперь я хочу воспроизвести созданный файл с помощью gstreamer. Я нашел код здесь: https://delog.wordpress.com/2011/10/04/read-and-write-raw-pcm-using-gstreamer/

Это консольная команда, которую я использую с Gstreamer 1.0:

gst-launch-1.0 filesrc location=testpcm.pcm ! 
audio/x-raw, rate=44100, channels=1, endianness=4321, width=16, depth=16, signed=true !
pulsesink

Когда я выполняю эту команду, я получаю эту ошибку

ERROR OF ELEMENT: /GstPipeline:pipeline0/GstCapsFilter:capsfilter0: Filter caps do not completely specify the output format

ADDITIONALDEBUGINFO:
gstcapsfilter.c(356): gst_capsfilter_prepare_buf ():   
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0:
Output caps are unfixed: audio/x-raw, rate=(int)44100, channels=(int)1, endianness=(int)4321, width=(int)16, depth=(int)16, signed=(boolean)true, format=(string){ S16LE, S16BE, F32LE, F32BE, S32LE, S32BE, S24LE, S24BE, S24_32LE, S24_32BE, U8 }, layout=(string)interleaved

person morgelo    schedule 24.03.2015    source источник


Ответы (1)


Вы используете GStreamer-0.1, но вам просто нужно обновить его до GStreamer-1.0. Команда выглядит так:

gst-launch-1.0 filesrc location=testpcm.pcm ! 
audio/x-raw, format=S16LE, channels=1, layout=interleaved, rate=44100 ! pulsesink
person Crossader    schedule 24.03.2015