I’m running an Xavier and have a time-lapse script running the following…
ffmpeg -f concat -i /media/nvidia/SCOUT/timelapse/concat.txt -y -r 30 -vcodec libx264 /media/nvidia/SCOUT/timelapse/cam3.mp4
I’ve just done some reading that I cannot use GPU in FFmpeg, does anyone know how I can achieve a similar output from Gstreamer?
Basically reading an input of image files from the concat file and then writing out to h264; but toooo slow on FFmpeg
Hi,
We have not supported hardware encoding in ffmpeg. It is under implementation. For hardware decoding, please check development guide .
Thanks, its my understanding GStreamer should be able to do it, but I just cant find a way of providing it an input type of concat
root@nvidia-desktop:/media/nvidia/SCOUT/timelapse# head /media/nvidia/SCOUT/timelapse/concat.txt
file 202005281257-cam3.jpeg
file 202005281257-cam3.jpeg
file 202005281257-cam3.jpeg
file 202005281316-cam3.jpeg
file 202005281316-cam3.jpeg
file 202005281316-cam3.jpeg
file 202005281318-cam3.jpeg
file 202005281318-cam3.jpeg
file 202005281318-cam3.jpeg
file 202005281320-cam3.jpeg
Hi,
In gstreamer, you can use multifilesrc . Please refer to
Hi,
On r28.2, I can run
$ gst-launch-1.0 videotestsrc num-buffers=60 ! pngenc ! multifilesink location=%06d.png
$ gst-launch-1.0 multifilesrc location="%06d.png" caps="image/png" ! decodebin ! videoconvert ! 'video/x-raw,format=NV12' ! nvvidconv ! 'video/x-raw(memory:NVMM),format=NV12' ! nvegltransform ! nveglglessink
Maybe the pipeline is not working because of your PNG files.
Please try the pipeline with nvivafilter:
$ gst-launch-1.0 multifilesrc location="%06d.png" caps="image/png" ! dec…
And gstreamer user guide
Tried the multifilesrc but it wants format of 0,1,2,3,4 , mine are in a date format specified in file /media/nvidia/SCOUT/timelapse/concat.txt
I can have it look at the directory rather than the file, but I need the images in the date format to do excluding of night times, weekends and bad weather days.
root@nvidia-desktop:/media/nvidia/SCOUT/timelapse# gst-launch-1.0 videotestsrc num-buffers=60 ! pngenc ! multifilesink location=%06d.png
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Got EOS from element "pipeline0".
Execution ended after 0:00:00.732731562
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
root@nvidia-desktop:/media/nvidia/SCOUT/timelapse# $ gst-launch-1.0 multifilesrc location="%06d.png" caps="image/png" ! decodebin ! videoconvert ! 'video/x-raw,format=NV12' ! nvvidconv ! 'video/x-raw(memory:NVMM),format=NV12' ! nvegltransform ! nveglglessink
-su: $: command not found
root@nvidia-desktop:/media/nvidia/SCOUT/timelapse# gst-launch-1.0 multifilesrc location="%06d.png" caps="image/png" ! decodebin ! videoconvert ! 'video/x-raw,format=NV12' ! nvvidconv ! 'video/x-raw(memory:NVMM),format=NV12' ! nvegltransform ! nveglglessink
Setting pipeline to PAUSED ...
Using winsys: x11
Pipeline is PREROLLING ...
Got context from element 'eglglessink0': gst.egl.EGLDisplay=context, display=(GstEGLDisplay)NULL;
ERROR: from element /GstPipeline:pipeline0/GstMultiFileSrc:multifilesrc0: Internal data stream error.
Additional debug info:
gstbasesrc.c(3055): gst_base_src_loop (): /GstPipeline:pipeline0/GstMultiFileSrc:multifilesrc0:
streaming stopped, reason error (-5)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
root@nvidia-desktop:/media/nvidia/SCOUT/timelapse# gst-launch-1.0 multifilesrc location="%06d.png" caps="image/png" ! decodebin ! videoconvert ! 'video/x-raw,format=NV12' ! nvvidconv ! 'video/x-raw(memory:NVMM),format=NV12' ! nvivafilter cuda-process=true customer-lib-name="libnvsample_cudaprocess.so" ! 'video/x-raw(memory:NVMM),format=RGBA' ! nvegltransform ! nveglglessink
Setting pipeline to PAUSED ...
Using winsys: x11
Pipeline is PREROLLING ...
Got context from element 'eglglessink0': gst.egl.EGLDisplay=context, display=(GstEGLDisplay)NULL;
ERROR: from element /GstPipeline:pipeline0/GstMultiFileSrc:multifilesrc0: Internal data stream error.
Additional debug info:
gstbasesrc.c(3055): gst_base_src_loop (): /GstPipeline:pipeline0/GstMultiFileSrc:multifilesrc0:
streaming stopped, reason error (-5)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
root@nvidia-desktop:/media/nvidia/SCOUT/timelapse#
root@nvidia-desktop:/media/nvidia/SCOUT/timelapse# ls
202005281257-cam3.jpeg 202005281348-cam3.jpeg 202005281422-cam3.jpeg 202005281456-cam3.jpeg 202005281530-cam3.jpeg 202005281604-cam3.jpeg 202005281638-cam3.jpeg 202005281712-cam3.jpeg 202005281746-cam3.jpeg
202005281316-cam3.jpeg 202005281350-cam3.jpeg 202005281424-cam3.jpeg 202005281458-cam3.jpeg 202005281532-cam3.jpeg 202005281606-cam3.jpeg 202005281640-cam3.jpeg 202005281714-cam3.jpeg 202005281748-cam3.jpeg
202005281318-cam3.jpeg 202005281352-cam3.jpeg 202005281426-cam3.jpeg 202005281500-cam3.jpeg 202005281534-cam3.jpeg 202005281608-cam3.jpeg 202005281642-cam3.jpeg 202005281716-cam3.jpeg 202005281750-cam3.jpeg
202005281320-cam3.jpeg 202005281354-cam3.jpeg 202005281428-cam3.jpeg 202005281502-cam3.jpeg 202005281536-cam3.jpeg 202005281610-cam3.jpeg 202005281644-cam3.jpeg 202005281718-cam3.jpeg 202005281752-cam3.jpeg
202005281322-cam3.jpeg 202005281356-cam3.jpeg 202005281430-cam3.jpeg 202005281504-cam3.jpeg 202005281538-cam3.jpeg 202005281612-cam3.jpeg 202005281646-cam3.jpeg 202005281720-cam3.jpeg 202005281754-cam3.jpeg
202005281324-cam3.jpeg 202005281358-cam3.jpeg 202005281432-cam3.jpeg 202005281506-cam3.jpeg 202005281540-cam3.jpeg 202005281614-cam3.jpeg 202005281648-cam3.jpeg 202005281722-cam3.jpeg 202005281756-cam3.jpeg
202005281326-cam3.jpeg 202005281400-cam3.jpeg 202005281434-cam3.jpeg 202005281508-cam3.jpeg 202005281542-cam3.jpeg 202005281616-cam3.jpeg 202005281650-cam3.jpeg 202005281724-cam3.jpeg bin
202005281328-cam3.jpeg 202005281402-cam3.jpeg 202005281436-cam3.jpeg 202005281510-cam3.jpeg 202005281544-cam3.jpeg 202005281618-cam3.jpeg 202005281652-cam3.jpeg 202005281726-cam3.jpeg cam3.mkv
202005281330-cam3.jpeg 202005281404-cam3.jpeg 202005281438-cam3.jpeg 202005281512-cam3.jpeg 202005281546-cam3.jpeg 202005281620-cam3.jpeg 202005281654-cam3.jpeg 202005281728-cam3.jpeg cam3.mp4
202005281332-cam3.jpeg 202005281406-cam3.jpeg 202005281440-cam3.jpeg 202005281514-cam3.jpeg 202005281548-cam3.jpeg 202005281622-cam3.jpeg 202005281656-cam3.jpeg 202005281730-cam3.jpeg concat.txt
202005281334-cam3.jpeg 202005281408-cam3.jpeg 202005281442-cam3.jpeg 202005281516-cam3.jpeg 202005281550-cam3.jpeg 202005281624-cam3.jpeg 202005281658-cam3.jpeg 202005281732-cam3.jpeg
202005281336-cam3.jpeg 202005281410-cam3.jpeg 202005281444-cam3.jpeg 202005281518-cam3.jpeg 202005281552-cam3.jpeg 202005281626-cam3.jpeg 202005281700-cam3.jpeg 202005281734-cam3.jpeg
202005281338-cam3.jpeg 202005281412-cam3.jpeg 202005281446-cam3.jpeg 202005281520-cam3.jpeg 202005281554-cam3.jpeg 202005281628-cam3.jpeg 202005281702-cam3.jpeg 202005281736-cam3.jpeg
202005281340-cam3.jpeg 202005281414-cam3.jpeg 202005281448-cam3.jpeg 202005281522-cam3.jpeg 202005281556-cam3.jpeg 202005281630-cam3.jpeg 202005281704-cam3.jpeg 202005281738-cam3.jpeg
202005281342-cam3.jpeg 202005281416-cam3.jpeg 202005281450-cam3.jpeg 202005281524-cam3.jpeg 202005281558-cam3.jpeg 202005281632-cam3.jpeg 202005281706-cam3.jpeg 202005281740-cam3.jpeg
202005281344-cam3.jpeg 202005281418-cam3.jpeg 202005281452-cam3.jpeg 202005281526-cam3.jpeg 202005281600-cam3.jpeg 202005281634-cam3.jpeg 202005281708-cam3.jpeg 202005281742-cam3.jpeg
202005281346-cam3.jpeg 202005281420-cam3.jpeg 202005281454-cam3.jpeg 202005281528-cam3.jpeg 202005281602-cam3.jpeg 202005281636-cam3.jpeg 202005281710-cam3.jpeg 202005281744-cam3.jpeg
Hi,
Not sure how to run the gstreamer pipeline exact same as the ffmpeg command. Suggest you go to
http://gstreamer-devel.966125.n4.nabble.com/
Once you have a working pipeline, please replace software encoder with hardware encoder nvv4l2h264enc , to enable hardware acceleration.