Hello
When I use the videotestsrc line: gst-launch-1.0 videotestsrc is-live=true ! openh264enc ! mpegtsmux ! hlssink playlist-root=http://IP \ location=/var/www/html/hlssink.%05d.ts \ playlist-location=/var/www/html/playlist.m3u8 I can play the videotestsrc... cool So I thought I would change that to an actual file. gst-launch-1.0 filesrc location=movie.mov ! openh264enc ! mpegtsmux ! hlssink playlist-root=http://IP \ location=/var/www/html/hlssink.%05d.ts \ playlist-location=/var/www/html/playlist.m3u8 on the second command I get syntax error What do I change for videotestsrc (that worked) to use an actual file? The movie.mov file format is apple quick time. Thanks, Jerry _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hello,
You will need to demux, parse and decode the video file before you can re-encode it to h264. Quick time is a container format. You will also need to know what video codec was used for the file. Regards, Rand ________________________________________ From: gstreamer-devel [[hidden email]] On Behalf Of Jerry Geis [[hidden email]] Sent: Wednesday, May 17, 2017 10:09 AM To: [hidden email] Subject: hlssink and openh264 Hello When I use the videotestsrc line: gst-launch-1.0 videotestsrc is-live=true ! openh264enc ! mpegtsmux ! hlssink playlist-root=http://IP \ location=/var/www/html/hlssink.%05d.ts \ playlist-location=/var/www/html/playlist.m3u8 I can play the videotestsrc... cool So I thought I would change that to an actual file. gst-launch-1.0 filesrc location=movie.mov ! openh264enc ! mpegtsmux ! hlssink playlist-root=http://IP \ location=/var/www/html/hlssink.%05d.ts \ playlist-location=/var/www/html/playlist.m3u8 on the second command I get syntax error What do I change for videotestsrc (that worked) to use an actual file? The movie.mov file format is apple quick time. Thanks, Jerry _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Jerry Geis-2
>Hello, >You will need to demux, parse and decode the video file before you can re-encode it to h264. >Quick time is a container format. You will also need to know what video codec was used for the file. >Regards, >Rand ok - I was assuming since videotestsrc was a good source and worked that changing to filesrc was OK also... Apparently not. So I added decodebin and videoconvert gst-launch-1.0 filesrc location=movie.mov ! decodebin ! videoconvert ! openh264enc ! mpegtsmux ! hlssink playlist-root=http://IP \ location=/var/www/html/ playlist-location=/var/www/ The pipeline now works, but I do not get anything but black on viewing. Do I still have something wrong ? Thanks, Jerry _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
If I wait a little longer - instead of a black screen I get 1 still image of the video. Which is a good step. VLC plays the playlist.m3u8 fine .ts files are served with the WRONG content-type (I think) The type is text/vnd.trolltech.linguist and it should be video/mp2t (I think) Do I not have something right? my command was: gst-launch-1.0 filesrc location=movie.mov ! decodebin ! videoconvert ! openh264enc ! mpegtsmux ! hlssink playlist-root=http://IP \ location=/var/www/html/hlssink playlist-location=/var/www/htm Thanks Jerry _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
insert h264parse between encoder and multiplexer. What could also help is to set a fixed GOP size on the openh264enc element (e.g. 1 second / 30 frames). What you can also try is to swap out openh264enc by x264enc and see if that yields better results.
|
In reply to this post by Jerry Geis-2
I am trying to run this command: gst-launch-1.0 filesrc location=pirates_trailer.mov '!' decodebin '!' videoconvert '!' openh264enc '!' h264parse '!' mpegtsmux '!' hlssink playlist-root=http://192.168.1.8/hlssink location=/var/www/html/hlssink/hlssink.%05d.ts playlist-location=/var/www/html/hlssink/playlist.m3u8 Setting pipeline to PAUSED ... Pipeline is PREROLLING ... Missing element: video/x-fluendo-va decoder WARNING: from element /GstPipeline:pipeline0/GstDecodeBin:decodebin0: Delayed linking failed. Additional debug info: ./grammar.y(510): gst_parse_no_more_pads (): /GstPipeline:pipeline0/GstDecodeBin:decodebin0: failed delayed linking some pad of GstDecodeBin named decodebin0 to some pad of GstVideoConvert named videoconvert0 and I get the above error. I do have fluendo codecs installed. What can I do about it ? Jerry _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Jerry,
I have seen the "delayed delayed linking failed no more pads error" before. I do not have a general solution for it. It is extremely frustrating. In your specific case I would recommend a more explicit pipeline where you demux the audio stream and video stream into separate queues and process the audio and video separately. That is come up with a pipeline that does not use decodebin. Also, keep in mind for HLS you are going to need AAC audio. Here is an example HLS pipeline that works for me. // HLS Sink example gst-launch-1.0 -v -e mpegtsmux name=m m. ! queue ! hlssink filesrc location=/home/rdg/data/the_canoe_h265.ts ! tsdemux name=d d. ! queue max-size-buffers=1200 max-size-buffers=0 max-size-time=0 ! h265parse ! mfxhevcdec ! videoconvert ! mfxvpp width=1280 height=720 ! mfxh264enc rate-control=cbr bitrate=1500 insert-aud=true ! "video/x-h264, stream-format=byte-stream, profile=high" ! m. d. ! queue max-size-buffers=1200 max-size-buffers=0 max-size-time=0 ! aacparse ! avdec_aac ! audioconvert ! voaacenc bitrate=128000 ! m. I want to draw your attention to this part of the pipeline: ! aacparse ! avdec_aac ! audioconvert ! voaacenc bitrate=128000 ! m. What this does is parse aac audio and then re encode it as aac audio. IIRC, I had to do this to avoid the no more pads error. I was unable to compose a pipeline that did not do the apparently extra work of transcoding AAC audio into AAC audio. Regards, Rand ________________________________________ From: gstreamer-devel [[hidden email]] On Behalf Of Jerry Geis [[hidden email]] Sent: Thursday, May 18, 2017 7:08 AM To: [hidden email] Subject: Re: hlssink and openh264 I am trying to run this command: gst-launch-1.0 filesrc location=pirates_trailer.mov '!' decodebin '!' videoconvert '!' openh264enc '!' h264parse '!' mpegtsmux '!' hlssink playlist-root=http://192.168.1.8/hlssink location=/var/www/html/hlssink/hlssink.%05d.ts playlist-location=/var/www/html/hlssink/playlist.m3u8 Setting pipeline to PAUSED ... Pipeline is PREROLLING ... Missing element: video/x-fluendo-va decoder WARNING: from element /GstPipeline:pipeline0/GstDecodeBin:decodebin0: Delayed linking failed. Additional debug info: ./grammar.y(510): gst_parse_no_more_pads (): /GstPipeline:pipeline0/GstDecodeBin:decodebin0: failed delayed linking some pad of GstDecodeBin named decodebin0 to some pad of GstVideoConvert named videoconvert0 and I get the above error. I do have fluendo codecs installed. What can I do about it ? Jerry _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |