Команды gst-launch для воспроизведения аудиофайлов (.mp3) + видеофайлов (.mp4) и только видеофайлов без аудио (.mp4)

Я хочу использовать gst-launch-1.0 для воспроизведения моих медиа-файлов, но я столкнулся с некоторыми проблемами в этом. У кого-нибудь есть какие-либо идеи или предложения, то, пожалуйста, помогите мне решить эту проблему.

У меня есть 3 типа медиа-файлов -

  1. Аудио файл (.mp3)

  2. Видео файлы (.mp4) (с аудио + видео данными оба)

  3. Видеофайлы (.mp4) (без аудиоданных... только видеоданные)

Когда я использую следующие 3 разные команды, я могу воспроизводить свои вышеупомянутые файлы, но мне нужна одна команда или только две команды, с помощью которых я могу воспроизводить свои вышеупомянутые файлы.

1) Для воспроизведения аудио файлов (.mp3) я использую следующий cmd

gst-launch-1.0 filesrc location = / media / Storage / audio_stream_pipe! расшифровка! аудиоконвертировать! audiotrack audio-name=Testplayer &

2) Для воспроизведения видеофайлов (.mp4) (с аудио + видео данными) я использую следующий cmd

gst-launch-1.0 filesrc location = / media / Storage / video_stream_pipe! имя декодера = декабрь! аудиоконвертировать! audiotrack audio-name=Testplayer dec.! видеоконвертер! автовидеоинк &

3) Для воспроизведения видеофайлов (.mp4) (без аудиоданных) я использую следующий cmd

gst-launch-1.0 filesrc location = / media / Storage / video_stream_pipe! расшифровка! видеоконвертер! автовидеоинк &

Имея 3 разных команды, я могу воспроизводить свои файлы, но мне нужна одна команда, поэтому я попробовал следующую команду, используя demux.

gst-launch-1.0 filesrc location = / media / Storage / video_stream_pipe! qtdemux name = demuxer demuxer.! очередь! расшифровка! видеоконвертер! autovideosink демультиплексор.! очередь! расшифровка! аудиоконвертировать! audiotrack audio-name=Testplayer &

В приведенной выше команде, когда я даю любые файлы.mp4 с аудио + видеоданными, тогда он работает нормально, но когда я даю любой файл.mp3, который не имеет видеоданных, или любые файлы.mp4, которые не имеют аудиоданных, он выдает ошибку -

"ОШИБКА: из элемента /GstPipeline:pipeline0/GstQTDemux:demuxer: Этот файл не содержит воспроизводимых потоков. Дополнительная информация отладки: qtdemux.c(653): gst_qtdemux_post_no_playable_stream_error (): /GstPipeline:pipe0 / GstQTerRoRec: конвейер не хочет выполнять предварительную проверку. Установка конвейера в NULL ... "

Насколько я понимаю, если какой-либо компонент (т.е. аудио или видео данные) отсутствует, то это выдает ошибку, но если медиа-файл имеет оба компонента, то он работает нормально...

так что мой вопрос -

  1. Как я могу решить эту проблему?

  2. Какие изменения необходимы, чтобы все 3 разных файла работали одной командой?

  3. Как мы можем определить, отсутствует ли какой-либо компонент в медиафайлах, и избежать этой проблемы?

  4. как проверить вывод элемента 'queue', который мы используем в приведенной выше команде после demux, чтобы определить, отсутствует ли какой-либо компонент?

Поскольку я использую целевую доску, доступны ограниченные элементы GStreamer. (alsasink, xvimagesink, ximagesink, pulsesink, faad, mad не доступны)

Любая помощь или предложение будет действительно полезным.

Спасибо, Блессон

0 ответов

Другие вопросы по тегам