Я пытаюсь использовать Gstreamer для создания файла с возможностью поиска (индексирования) в Linux. Мои трубопроводы работают для записи и сохранения данных, но я не могу понять, как индексировать данные, так что я могу обратиться за помощью gst_element_seek_simple() [http://docs.gstreamer.com/display/GstSDK/Basic+tutorial+4%3A+Time+management]Как создать индексный видеофайл с Gstreamer
Я видел этот пост: Gstreamer video output position tracking and seeking и подтверждено Я посылаю EOS на трубопроводе с -e.
Вот мой трубопровод и выход. Я собираюсь показать его на экране моей встроенной системы и сохранить в файле M4V.
# gst-launch-0.10 -e v4l2src ! \
tee name=t !
queue !
video/x-raw-yuv,width=320,height=240 !
videoflip method=clockwise !
ffmpegcolorspace !
fbdevsink t. !
queue !
ffmpegcolorspace !
ffenc_mpeg4 !
filesink location=output.m4v
Вот результат:
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
WARNING: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Could not get parameters on device '/dev/video0'
Additional debug info:
v4l2src_calls.c(235): gst_v4l2src_set_capture(): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
system error: Inappropriate ioctl for device
Setting pipeline to PLAYING ...
New clock: GstSystemClock
^CCaught interrupt -- handling interrupt.
Interrupt: Stopping pipeline ...
(gst-launch-0.10:534): GLib-CRITICAL **: Source ID 62 was not found when attempting to remove it
EOS on shutdown enabled -- Forcing EOS on the pipeline
Waiting for EOS...
Got EOS from element "pipeline0".
EOS received - stopping pipeline...
Execution ended after 10057977251 ns.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
А вот выход GST-открыть на моем новом файле:
beaglebone:# gst-discoverer-0.10 output.m4v
Analyzing file:///output.m4v
Done discovering file:///output.m4v
Topology:
video: MPEG-4 Video
Properties:
Duration: 0:00:00.000000000
Seekable: no
Благодаря
Это была проблема. Добавляем плагин mp4mux до того, как filesink сгенерировал проиндексированный видеофайл. К сожалению, ограничения моего проекта не позволяют мне использовать последний gstreamer-1.0, но все возможности, которые мне нужны, равны 0.10. Спасибо за вашу помощь! – linsek