ffdec_h264 failure

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

ffdec_h264 failure

Jonathan Busby
I'm trying to find a less bandwidth intensive way of streaming video from my Nokia N900's main back camera to my desktop other than sending it as a stream of jpeg frames.

I thought the following would work :

N900 :  gst-launch v4l2camsrc device=/dev/video0 ! ffmpegcolorspace ! dsph264enc  ! tcpserversink host=aleph1.clarkconnect.lan port=5000

PC : gst-launch tcpclientsrc host=192.168.1.179 port=5000  ! ffdec_h264 ! ffmpegcolorspace ! autovideosink

but on the PC side I get this error :

Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
ERROR: from element /GstPipeline:pipeline0/ffdec_h264:ffdec_h2640: Internal GStreamer error: negotiation problem.  Please file a bug at http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer.
Additional debug info:
gstffmpegdec.c(2684): gst_ffmpegdec_chain (): /GstPipeline:pipeline0/ffdec_h264:ffdec_h2640:
ffdec_h264: input format was not set before data start
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...

Might anyone know what is going on above?

Thanks,

Jonathan


_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: ffdec_h264 failure

Felipe Contreras
Sorry for the long reply.

On Thu, Sep 1, 2011 at 1:42 AM, Jonathan Busby <[hidden email]> wrote:

> I'm trying to find a less bandwidth intensive way of streaming video from my
> Nokia N900's main back camera to my desktop other than sending it as a
> stream of jpeg frames.
>
> I thought the following would work :
>
> N900 :  gst-launch v4l2camsrc device=/dev/video0 ! ffmpegcolorspace !
> dsph264enc  ! tcpserversink host=aleph1.clarkconnect.lan port=5000
>
> PC : gst-launch tcpclientsrc host=192.168.1.179 port=5000  ! ffdec_h264 !
> ffmpegcolorspace ! autovideosink
>
> but on the PC side I get this error :

...

> Might anyone know what is going on above?

Most likely the SPS/PPS is missing, which is kind of expected, you
need an rtp payloader, and in the case of h264, there's an option to
configure the configuration interval, which is the rate at which
SPS/PPS are resent.

Cheers.

--
Felipe Contreras
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Playing pipeline state changes when adding elements

Paul Stuart
Hi,
 I am missing something about how Gstreamer manages states. I have a
pipeline that looks roughly like:

videosrc-->tee--> queue-->displaySink
                      |
                      ---> queue-->valve

When I initially start the pipeline, valve drop is set to true
Later I add a couple elements off the valve like so:
 
videosrc-->tee--> queue-->displaySink
                      |
                      ---> queue-->valve-->imageEncoder-->FileSink

I set FileSink to PLAYING after it is linked and then open the valve.
When FileSink transitions to playing, the whole pipeline goes to PAUSED
state and then transitions back to PLAYING. Is this normal and expected?
Is there a way to prevent this from happening when I add an element to a
PLAYING pipeline?

Thanks,
Paul

_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: ffdec_h264 failure

Andrey Nechypurenko-2
In reply to this post by Felipe Contreras
>> Might anyone know what is going on above?
>
> Most likely the SPS/PPS is missing, which is kind of expected, you
> need an rtp payloader, and in the case of h264, there's an option to
> configure the configuration interval, which is the rate at which
> SPS/PPS are resent.

The following pipelines works fine for me with N900 as server and
notebook with Debian as client.

Server:
gst-launch v4l2camsrc device=/dev/video0 ! dsph264enc ! rtph264pay !
udpsink host=192.168.9.105 port=5000

Client:
gst-launch -v gstrtpbin name=rtpbin \
    udpsrc caps="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H264"
\
            port=5000 ! rtpbin.recv_rtp_sink_0 \
        rtpbin. ! rtph264depay ! ffdec_h264 ! ffmpegcolorspace ! ximagesink

Where 192.168.9.105 was the IP address of the client. I think it
should be possible to use some multicast address instead but did not
try it myself yet.

Hope it helps,
Andrey.
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: ffdec_h264 failure

Felipe Contreras
On Tue, Feb 21, 2012 at 12:33 AM, Andrey Nechypurenko
<[hidden email]> wrote:

>>> Might anyone know what is going on above?
>>
>> Most likely the SPS/PPS is missing, which is kind of expected, you
>> need an rtp payloader, and in the case of h264, there's an option to
>> configure the configuration interval, which is the rate at which
>> SPS/PPS are resent.
>
> The following pipelines works fine for me with N900 as server and
> notebook with Debian as client.
>
> Server:
> gst-launch v4l2camsrc device=/dev/video0 ! dsph264enc ! rtph264pay !
> udpsink host=192.168.9.105 port=5000

You might want to try something like:
dsph264enc mode=1 ! rtph264pay config-interval=5

This way the encoder would be configured for streaming, and the
payloader would re-send the SPS/PPS each 5 seconds (for recovery).

Cheers.

--
Felipe Contreras
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel