Я новичок в gstreamer, так что терпите меня.
У меня есть рабочий конвейер, в котором аудио и видео из тестового источника отправляются в элемент webrtcbin, используемый для отправки предложения. Конвейер выглядит следующим образом:
PIPELINE_DESC = '''
webrtcbin name=sendrecv stun-server=stun://stun.l.google.com:19302
audiotestsrc is-live=true wave=red-noise ! audioconvert ! audioresample ! queue ! opusenc ! rtpopuspay !
queue ! application/x-rtp,media=audio,encoding-name=OPUS,payload=96 ! sendrecv.
videotestsrc is-live=true pattern=ball ! video/x-raw,width=320,height=240 ! videoconvert ! queue ! x264enc ! rtph264pay !
queue ! application/x-rtp,media=video,encoding-name=H264,payload=97 ! sendrecv.
'''
Однако для этого требуется много ресурсов ЦП / памяти, поскольку gstreamer должен кодировать аудио / видео. Следовательно, я должен был использовать предварительно записанный файл, чтобы снизить использование ресурсов.
Я хочу использовать файл примера (sample.mp4) для отправки аудио и видео в элемент webRTCbin. Файл mp4 содержит видео H264 и аудио AA C. Я пробовал много комбинаций элементов, но это не работает. Не могли бы вы помочь мне исправить мой трубопровод?
PIPELINE_DESC = '''
webrtcbin name=sendrecv stun-server=stun://stun.l.google.com:19302
filesrc location=sample.mp4 ! decodebin ! audioconvert ! sendrecv.
filesrc location=sample.mp4 ! decodebin ! videoconvert ! sendrecv.
'''
Большое спасибо заранее.