GStreamer i.MX6 Camera Streaming

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

GStreamer i.MX6 Camera Streaming

GStreamer i.MX6 Camera Streaming

(DEPRECATED. Please check this document for Real Time Streaming)

A server can be streaming video and a client, in this case a i.MX6 target, is receiving and decoding it. For example, a server with GStreamer and a web camera connected, can be streaming with the following command:

$ # Pipeline 1

$ gst-launch v4l2src ! 'video/x-raw-yuv, format=(fourcc)I420, width=(int)1280, height=(int)800' ! ffenc_mpeg4 ! tcpserversink host=$CLIENT_IP port=$PORT

and on the target, the client receives, decodes and display with

$ # Pipeline 2

$ gst-launch tcpclientsrc host=$SERVER_IP port=$PORT  ! 'video/mpeg, width=(int)1280, height=(int)800, framerate=(fraction)10/1, mpegversion=(int)4, systemstream=(boolean)false' ! vpudec ! mfw_isink

The filter caps between the tcpclientsrc and the decoder (vpudec) depend on the sink caps coming from the server encoder (ffenc_mpeg4), so these may change depending on your needs. Running the above pipelines require the environment variables SERVER_IP, CLIENT_IP and PORT.

In case you want the i.MX6 to act as a server, just change the video source (either mfw_v4lsrc of v4l2src) and the encoder (vpuenc), so

$ # Pipeline 3

$  gst-launch v4l2src  !  'video/x-raw-yuv, format=(fourcc)I420, width=(int)640, height=(int)480, interlaced=(boolean)false, framerate=(fraction)10/1'  ! vpuenc ! tcpserversink host=$CLIENT_IP port=$PORT


For testing purposes, set SERVER_IP=127.0.0.1, CLIENT_IP=127.0.0.1 and PORT=500, and run pipeline 3 and 2 in two different consoles. Check with 'top' the  CPU usage and see that VPU is actually doing most of the work.

ラベル(3)
コメント

While working with a customer, we found that 1080p encode through the VPU doesn't work directly because of a test in src/video/vpu/src/vpuenc.c in the gst-fsl-plugins-3.0.2 package:

    if ((pad_width % 16) || (pad_height % 16)) {

Removing the restriction on pad_height seems to function.

There's also a way to use the mfw_ipucsc element to stretch things by 8 pixels.

%3CLINGO-SUB%20id%3D%22lingo-sub-1100703%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EGStreamer%20i.MX6%20%E3%82%AB%E3%83%A1%E3%83%A9%20%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%B0%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1100703%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%26lt%3Bmeta%20http-equiv%3D%22Content-Type%22%20content%3D%22text%2Fhtml%3B%20charset%3Dutf-8%22%20%2F%26gt%3B%0A%3CP%3E%3CSTRONG%20style%3D%22font-size%3A%2018pt%3B%22%3E(%E9%9D%9E%E6%8E%A8%E5%A5%A8%E3%80%82%E3%83%AA%E3%82%A2%E3%83%AB%E3%82%BF%E3%82%A4%E3%83%A0%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%81%AF%20%3CA%20_jive_internal%3D%22true%22%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Fdocs%2FDOC-94646%22%20target%3D%22_blank%22%3E%E3%80%81%E3%81%93%E3%81%AE%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%3C%2FA%3E%20%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84)%3C%2FSTRONG%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%E3%82%B5%E3%83%BC%E3%83%90%E3%81%AF%E3%83%93%E3%83%87%E3%82%AA%E3%82%92%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%97%E3%80%81%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%20(%E3%81%93%E3%81%AE%E5%A0%B4%E5%90%88%E3%81%AF%20i.MX6%20%E3%82%BF%E3%83%BC%E3%82%B2%E3%83%83%E3%83%88)%20%E3%81%8C%E3%83%93%E3%83%87%E3%82%AA%E3%82%92%E5%8F%97%E4%BF%A1%E3%81%97%E3%81%A6%E3%83%87%E3%82%B3%E3%83%BC%E3%83%89%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82%E3%81%9F%E3%81%A8%E3%81%88%E3%81%B0%E3%80%81GStreamer%20%E3%81%A8%20Web%20%E3%82%AB%E3%83%A1%E3%83%A9%E3%81%8C%E6%8E%A5%E7%B6%9A%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AF%E3%80%81%E6%AC%A1%E3%81%AE%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CBLOCKQUOTE%3E%0A%3CP%3E%24%20%23%20%E3%83%91%E3%82%A4%E3%83%97%E3%83%A9%E3%82%A4%E3%83%B3%201%3C%2FP%3E%0A%3CP%3E%3CEM%3E%24%20gst%20-%E8%B5%B7%E5%8B%95v4l2src!'video%2Fx-raw-yuv%2C%20format%3D(fourcc)I420%2C%20width%3D(int)1280%2C%20height%3D(int)800'ffenc_mpeg4%20!tcpserversink%20%E3%83%9B%E3%82%B9%E3%83%88%3D%24CLIENT_IP%20%E3%83%9D%E3%83%BC%E3%83%88%3D%24PORT%3C%2FEM%3E%3C%2FP%3E%0A%0A%0A%3C%2FBLOCKQUOTE%3E%3CP%3E%E3%81%BE%E3%81%9F%E3%80%81%E3%82%BF%E3%83%BC%E3%82%B2%E3%83%83%E3%83%88%E4%B8%8A%E3%81%A7%E3%81%AF%E3%80%81%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E3%81%AF%E5%8F%97%E4%BF%A1%E3%80%81%E3%83%87%E3%82%B3%E3%83%BC%E3%83%89%E3%80%81%E3%81%8A%E3%82%88%E3%81%B3%E8%A1%A8%E7%A4%BA%E3%82%92%E8%A1%8C%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CBLOCKQUOTE%3E%0A%3CP%3E%24%20%23%20%E3%83%91%E3%82%A4%E3%83%97%E3%83%A9%E3%82%A4%E3%83%B3%202%3C%2FP%3E%0A%3CP%3E%3CEM%3E%20%24%20gst-launch%20tcpclientsrc%20host%3D%24SERVER_IP%20port%3D%24PORT%20!'video%2Fmpeg%2C%20width%3D(int)1280%2C%20height%3D(int)800%2C%20framerate%3D(fraction)10%2F1%2C%20mpegversion%3D(int)4%2C%20systemstream%3D(boolean)false'%20!vpudec!mfw_isink%3C%2FEM%3E%3C%2FP%3E%0A%0A%0A%3C%2FBLOCKQUOTE%3E%3CP%3E%3C%2FP%3E%3CP%3E%3CEM%3Etcpclientsrc%3C%2FEM%3E%20%E3%81%A8%E3%83%87%E3%82%B3%E3%83%BC%E3%83%80%20(%3CEM%3Evpudec%3C%2FEM%3E)%20%E3%81%AE%E9%96%93%E3%81%AE%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%20%E3%82%AD%E3%83%A3%E3%83%83%E3%83%97%E3%81%AF%E3%80%81%E3%82%B5%E3%83%BC%E3%83%90%20%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%80%20(%3CEM%3Effenc_mpeg4%3C%2FEM%3E)%20%E3%81%8B%E3%82%89%E3%81%AE%E3%82%B7%E3%83%B3%E3%82%AF%20%E3%82%AD%E3%83%A3%E3%83%83%E3%83%97%E3%81%AB%E4%BE%9D%E5%AD%98%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%80%81%E3%81%93%E3%82%8C%E3%82%89%E3%81%AF%E3%83%8B%E3%83%BC%E3%82%BA%E3%81%AB%E5%BF%9C%E3%81%98%E3%81%A6%E5%A4%89%E6%9B%B4%E3%81%95%E3%82%8C%E3%82%8B%E5%8F%AF%E8%83%BD%E6%80%A7%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%E4%B8%8A%E8%A8%98%E3%81%AE%E3%83%91%E3%82%A4%E3%83%97%E3%83%A9%E3%82%A4%E3%83%B3%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%80%81%E7%92%B0%E5%A2%83%E5%A4%89%E6%95%B0%20SERVER_IP%E3%80%81CLIENT_IP%E3%80%81%E3%81%8A%E3%82%88%E3%81%B3%20PORT%20%E3%81%8C%E5%BF%85%E8%A6%81%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3Ei.MX6%E3%82%92%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%A8%E3%81%97%E3%81%A6%E5%8B%95%E4%BD%9C%E3%81%95%E3%81%9B%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%AF%E3%80%81%E3%83%93%E3%83%87%E3%82%AA%E3%82%BD%E3%83%BC%E3%82%B9(v4l2src%E3%81%AEmfw_v4lsrc)%E3%81%A8%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%80%E3%83%BC(vpuenc)%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%99%E3%82%8B%E3%81%A0%E3%81%91%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CBLOCKQUOTE%3E%0A%3CP%3E%24%20%23%20%E3%83%91%E3%82%A4%E3%83%97%E3%83%A9%E3%82%A4%E3%83%B3%203%3C%2FP%3E%0A%3CP%3E%3CEM%3E%24%20gst%20-%E8%B5%B7%E5%8B%95v4l2src!%20'video%2Fx-raw-yuv%2C%20format%3D(fourcc)I420%2C%20width%3D(int)640%2C%20height%3D(int)480%2C%20interlaced%3D(boolean)false%2C%20framerate%3D(fraction)10%2F1'%20!vpuenc%20!tcpserversink%20%E3%83%9B%E3%82%B9%E3%83%88%3D%24CLIENT_IP%20%E3%83%9D%E3%83%BC%E3%83%88%3D%24PORT%3C%2FEM%3E%3C%2FP%3E%0A%0A%0A%3C%2FBLOCKQUOTE%3E%3CP%3E%3CEM%3E%3CBR%20%2F%3E%3C%2FEM%3E%3C%2FP%3E%3CP%3E%E3%83%86%E3%82%B9%E3%83%88%E7%9B%AE%E7%9A%84%E3%81%A7%E3%80%81SERVER_IP%3D127.0.0.1%E3%80%81CLIENT_IP%3D127.0.0.1%E3%80%81PORT%3D500%20%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%97%E3%80%81%E3%83%91%E3%82%A4%E3%83%97%E3%83%A9%E3%82%A4%E3%83%B3%203%20%E3%81%A8%202%20%E3%82%92%202%20%E3%81%A4%E3%81%AE%E7%95%B0%E3%81%AA%E3%82%8B%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB%E3%81%A7%E5%AE%9F%E8%A1%8C%E3%81%97%E3%81%BE%E3%81%99%E3%80%82CPU%20%E4%BD%BF%E7%94%A8%E7%8E%87%E3%82%92%20'top'%20%E3%81%A7%E7%A2%BA%E8%AA%8D%E3%81%97%E3%80%81VPU%20%E3%81%8C%E5%AE%9F%E9%9A%9B%E3%81%AB%E3%81%BB%E3%81%A8%E3%82%93%E3%81%A9%E3%81%AE%E4%BD%9C%E6%A5%AD%E3%82%92%E8%A1%8C%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%81%93%E3%81%A8%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-1100703%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3Ei.MX6_All%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3ELinux%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3E%E3%83%9E%E3%83%AB%E3%83%81%E3%83%A1%E3%83%87%E3%82%A3%E3%82%A2%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1100704%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E6%97%A5%E6%99%82%3AGStreamer%20i.MX6%E3%82%AB%E3%83%A1%E3%83%A9%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%B0%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1100704%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%26lt%3Bmeta%20http-equiv%3D%22Content-Type%22%20content%3D%22text%2Fhtml%3B%20charset%3Dutf-8%22%20%2F%26gt%3B%0A%3CP%3E%E3%81%8A%E5%AE%A2%E6%A7%98%E3%81%A8%E3%81%AE%E5%85%B1%E5%90%8C%E4%BD%9C%E6%A5%AD%E4%B8%AD%E3%81%AB%E3%80%81gst-fsl-plugins-3.0.2%20%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%81%AE%20src%2Fvideo%2Fvpu%2Fsrc%2Fvpuenc.c%20%E3%81%A7%E3%81%AE%E3%83%86%E3%82%B9%E3%83%88%E3%81%AB%E3%82%88%E3%82%8A%E3%80%81VPU%20%E3%82%92%E4%BB%8B%E3%81%97%E3%81%9F%201080p%20%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%89%E3%81%8C%E7%9B%B4%E6%8E%A5%E6%A9%9F%E8%83%BD%E3%81%97%E3%81%AA%E3%81%84%E3%81%93%E3%81%A8%E3%81%8C%E3%82%8F%E3%81%8B%E3%82%8A%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3C%2FP%3E%3CPRE%20translate%3D%22no%22%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20if%20((pad_width%20%25%2016)%20%7C%7C%20(pad_height%20%25%2016))%20%7B%0A%3C%2FPRE%3E%3CP%3Epad_height%E3%81%AE%E5%88%B6%E9%99%90%E3%82%92%E8%A7%A3%E9%99%A4%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81%E6%A9%9F%E8%83%BD%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%82%88%E3%81%86%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%3CTT%3E%E3%81%BE%E3%81%9F%E3%80%81mfw_ipucsc%3C%2FTT%3E%E8%A6%81%E7%B4%A0%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%80%81%E7%89%A9%E3%82%928%E3%83%94%E3%82%AF%E3%82%BB%E3%83%AB%E5%BC%95%E3%81%8D%E4%BC%B8%E3%81%B0%E3%81%99%E6%96%B9%E6%B3%95%E3%82%82%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E
評価なし
バージョン履歴
最終更新日:
‎11-15-2012 03:44 PM
更新者: