The latency problem of Streaming h264 video through TCP

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

The latency problem of Streaming h264 video through TCP

Jiaqi Gao
Hi,

I'm trying to stream H264 video through TCP, and here is my pipeline:

Sender:
gst-launch-1.0 playbin uri=file:///[video-path] video-sink="x264enc tune=zetolatency ! tcpclientsink port=9999 host=localhost"

Receiver:
gst-launch-1.0 tcpserversrc port=9999 host=localhost ! h264parse ! avdec_h264 ! videoconvert ! avenc_bmp ! multifilesink location=[path]

The reason I have to use playbin is I want the sender to act like a camera and output video at specific frame rate (such as 5fps).

The whole pipeline works fine, but the problem is h264parse doesn't output one frame until it receives the information of next frame. This means if I have a 5fps video, the latency is at least 1/5=200ms. I don't have this problem when I'm streaming through UDP.

Does anyone has any idea to reduce the latency and let h264parse output the frame as long as it receives the whole frame?

Thanks!

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

Re: The latency problem of Streaming h264 video through TCP

Yasushi SHOJI-2
Hi,

On Thu, Oct 26, 2017 at 6:05 AM, Jiaqi Gao <[hidden email]> wrote:

> Sender:
> gst-launch-1.0 playbin uri=file:///[video-path] video-sink="x264enc
> tune=zetolatency ! tcpclientsink port=9999 host=localhost"
>
> Receiver:
> gst-launch-1.0 tcpserversrc port=9999 host=localhost ! h264parse !
> avdec_h264 ! videoconvert ! avenc_bmp ! multifilesink location=[path]
>
> The reason I have to use playbin is I want the sender to act like a camera
> and output video at specific frame rate (such as 5fps).

videorate usable for you?

> The whole pipeline works fine, but the problem is h264parse doesn't output
> one frame until it receives the information of next frame. This means if I
> have a 5fps video, the latency is at least 1/5=200ms. I don't have this
> problem when I'm streaming through UDP.

what pipeline did you use for UDP?

> Does anyone has any idea to reduce the latency and let h264parse output the
> frame as long as it receives the whole frame?

how about using only I frames?
--
           yashi
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel