Camera 如何使Gstreamer的性能最大化

Camera 如何使Gstreamer的性能最大化,camera,streaming,wifi,gstreamer,microphone,Camera,Streaming,Wifi,Gstreamer,Microphone,我正在尝试使用Gstreamer来流式传输摄像头的视频和麦克风的音频。 使用Odroid C1+作为服务器,PC作为客户端。 当我使用局域网电缆时,它是完美的。但当我使用WiFi时,它的性能会显著下降 我曾经 $ gst-launch-1.0 v4l2src ! gdppay ! tcpserversink host=localhost port=5000 alsasrc device="hw:1,0" ! gdppay ! tcpserversink host=localhost port=6

我正在尝试使用Gstreamer来流式传输摄像头的视频和麦克风的音频。 使用Odroid C1+作为服务器,PC作为客户端。 当我使用局域网电缆时,它是完美的。但当我使用WiFi时,它的性能会显著下降

我曾经

$ gst-launch-1.0 v4l2src ! gdppay ! tcpserversink host=localhost port=5000 alsasrc device="hw:1,0" ! gdppay ! tcpserversink host=localhost port=6000
$ gst-launch-1.0 tcpclientsrc host=localhost port=5000 ! gdpdepay ! autovideosink sync=false tcpclientsrc host=localhost port=6000 ! gdpdepay ! autoaudiosink sync=false

如何最大限度地提高Gstreamer流媒体的性能, 同时同步视频和音频

更新

$ gst-launch-1.0 v4l2src ! vaapih264enc ! rtph264pay ! gdppay ! tcpserversink host=localhost port=5000
Setting pipeline to PAUSED ...
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/vmwgfx_drv_video.so
libva info: va_openDriver() returns -1
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/vmwgfx_drv_video.so
libva info: va_openDriver() returns -1
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns -1
libva error: va_getDriverName() failed with unknown libva error,driver_name=(null)
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns -1
libva error: va_getDriverName() failed with unknown libva error,driver_name=(null)
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstVaapiEncodeH264:vaapiencodeh264-0: Could not initialize supporting library.
Additional debug info:
gstvideoencoder.c(1559): gst_video_encoder_change_state (): /GstPipeline:pipeline0/GstVaapiEncodeH264:vaapiencodeh264-0:
Failed to open encoder
Setting pipeline to NULL ...
Freeing pipeline ...

我在Ubuntu16.04、i5-6400 CPU上的VMware上运行了此测试,没有GPU PC进行测试。

第一个管道对网络的要求更高-因为您发送未编码的原始帧(很大)。。第二条管道对CPU的要求更高。您可以使用chceck gst omx、vaapi等对第二个管道使用hw编码配置omx的bellagio和generic是什么?我安装了omx和vaapi,但不能使用任何东西哈哈..首先,当我命令
gst-inspect-1.0 | grep omx
时,什么都没有出现。我将更新运行vaapi时出现的错误。我不确定您是否可以在vmware中使用vaapi。。在虚拟化操作系统中进行硬件加速有点。。很难/不稳定/不工作您必须在Odroid进行测试。。不在VMWare中-gst omx使用PC上不存在的api OpenMax api-可以尝试,但仅用于测试目的..第一个管道对网络的要求更高-因为您发送未编码的原始帧(很大)。。第二条管道对CPU的要求更高。您可以使用chceck gst omx、vaapi等对第二个管道使用hw编码配置omx的bellagio和generic是什么?我安装了omx和vaapi,但不能使用任何东西哈哈..首先,当我命令
gst-inspect-1.0 | grep omx
时,什么都没有出现。我将更新运行vaapi时出现的错误。我不确定您是否可以在vmware中使用vaapi。。在虚拟化操作系统中进行硬件加速有点。。很难/不稳定/不工作您必须在Odroid进行测试。。不在VMWare中-gst omx使用PC上不存在的api OpenMax api-可以尝试,但仅用于测试目的。。
$ gst-launch-1.0 v4l2src ! vaapih264enc ! rtph264pay ! gdppay ! tcpserversink host=localhost port=5000
Setting pipeline to PAUSED ...
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/vmwgfx_drv_video.so
libva info: va_openDriver() returns -1
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/vmwgfx_drv_video.so
libva info: va_openDriver() returns -1
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns -1
libva error: va_getDriverName() failed with unknown libva error,driver_name=(null)
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns -1
libva error: va_getDriverName() failed with unknown libva error,driver_name=(null)
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstVaapiEncodeH264:vaapiencodeh264-0: Could not initialize supporting library.
Additional debug info:
gstvideoencoder.c(1559): gst_video_encoder_change_state (): /GstPipeline:pipeline0/GstVaapiEncodeH264:vaapiencodeh264-0:
Failed to open encoder
Setting pipeline to NULL ...
Freeing pipeline ...