Воспроизведение mpeg2ts с Gstreamer-1.0 на Raspberry Pi
Добрый день, программисты, я пытаюсь воспроизвести файл.ts с помощью gstreamer прямо на RPi.
Gstreamer-1.0 и gst-omx были успешно установлены, и этот пример конвейера работает как чудо: gst-launch-1.0 -v filesrc location=h264_720p_hp_5.1_6mbps_ac3_planet.mp4 ! qtdemux ! h264parse ! omxh264dec ! autovideosink
Это на самом деле даже работает, используя gst-launch-1.0 playbin uri=file:/root/h264_720p_hp_5.1_6mbps_ac3_planet.mp4
Однако, если я пытаюсь использовать playbin для воспроизведения файла.ts, он действительно запускает его, но только с очень низкой частотой кадров, что делает этот подход непригодным для использования.
Если я пытаюсь создать собственный конвейер, подобный показанному выше, я застрял с "tsparse", который явно несовместим с "omxmpeg2videodec".
Это то, что я бегу:
gst-launch-1.0 -v filesrc location=parkrun1920_12mbps.ts ! tsdemux ! tsparse ! omxmpeg2videodec ! autovideosink
Который выводит эту ошибку:
erroneous pipeline: could not link mpegtsparse2-0 to omxmpeg2videodec-omxmpeg2videodec0
У кого-нибудь есть идея, как заставить gstreamer свободно воспроизводить файлы mpeg2-ts?
Моя цель - воспроизвести одноадресные потоки http mpeg2-ts, предоставленные mumudvb, на одном и том же RPi.
Спасибо за вашу помощь, будет принята с благодарностью!
Редактировать: omxplayer воспроизводит файл.ts идеально гладко, поэтому я не думаю, что моя проблема имеет какое-либо отношение к оборудованию или файлу.
2 ответа
Проблема в том, что я использовал tsparse. После демультиплексирования потока он больше не является файлом TS, и для этого необходимо использовать mpegvideoparse или аналогичные элементы синтаксического анализатора.
Я использую, как это, чтобы играть в Ts в Ubuntu. gst-launch-1.0 souphttpsrc location = http://xxx.xxx.x.xx/location/test.ts! имя tsdemux =d d.video_0324! очередь! h264parse! avdec_h264! видеоконвертер! видеомасштаб ximagesink.
К вашему сведению, если playbin работает, вы можете сгенерировать xdot grapfile, установив GST_DEBUG_DUMP_DOT_DIR var. Затем проанализируйте xdot и найдите решение.