Воспроизвести 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
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