Команды gst-launch для воспроизведения аудиофайлов (.mp3) + видеофайлов (.mp4) и только видеофайлов без аудио (.mp4)
Я хочу использовать gst-launch-1.0 для воспроизведения моих медиа-файлов, но я столкнулся с некоторыми проблемами в этом. У кого-нибудь есть какие-либо идеи или предложения, то, пожалуйста, помогите мне решить эту проблему.
У меня есть 3 типа медиа-файлов -
Аудио файл (.mp3)
Видео файлы (.mp4) (с аудио + видео данными оба)
Видеофайлы (.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 ... "
Насколько я понимаю, если какой-либо компонент (т.е. аудио или видео данные) отсутствует, то это выдает ошибку, но если медиа-файл имеет оба компонента, то он работает нормально...
так что мой вопрос -
Как я могу решить эту проблему?
Какие изменения необходимы, чтобы все 3 разных файла работали одной командой?
Как мы можем определить, отсутствует ли какой-либо компонент в медиафайлах, и избежать этой проблемы?
как проверить вывод элемента 'queue', который мы используем в приведенной выше команде после demux, чтобы определить, отсутствует ли какой-либо компонент?
Поскольку я использую целевую доску, доступны ограниченные элементы GStreamer. (alsasink, xvimagesink, ximagesink, pulsesink, faad, mad не доступны)
Любая помощь или предложение будет действительно полезным.
Спасибо, Блессон