2014-10-22 112 views
0

我想通過網絡傳輸一個USB攝像頭。我之前設法在1280x720時以10 fps的速度進行拍攝,但由於相機功能不夠強,無法達到25或30 fps。 所以我買了新的USB攝像頭(羅技C920)至極是能夠以30fps做到720P(如文檔說)gstreamer視頻在720p和25/30 fps

的問題是,它仍然是不工作的25或30fps的

這裏有gstreamer的命令我使用:

發信人:

gst-launch v4l2src device=/dev/video0 ! video/x-raw-yuv,width=1280,height=720,framerate=10/1 ! ffmpegcolorspace ! vpuenc codec=6 ! rtph264pay ! udpsink host=192.168.20.27 port=5000 

接收機:

gst-launch udpsrc port=5000 caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, payload=(int)96, encoding-name=(string)H264" ! rtph264depay ! ffdec_h264 ! xvimagesink 

所以這是工作在10fps。當我試圖改變更多的FPS時,出現以下錯誤:

Setting pipeline to PAUSED ...             
[INFO] Product Info: i.MX6Q/D/S             
vpuenc versions :)                
    plugin: 3.0.11               
    wrapper: 1.0.46(VPUWRAPPER_ARM_LINUX Build on Sep 29 2014 16:56:55)  
    vpulib: 5.4.23               
    firmware: 3.1.1.46056             
ERROR: Pipeline doesn't want to pause.           
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Could not negotiate format                  
Additional debug info:               
/media/philippe/data/fsl-release-bsp/build-x11/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/gstreamer/0.10.36-r3/gstreamer-0.10.36/libs/gst/base/gstbasesrc.c(2830): gst_base_src_start(): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:  
Check your filtered caps, if any             
Setting pipeline to NULL ...              
Freeing pipeline ...   

如果我刪除寬度參數,我起身到15fps的,但不多。 由於錯誤狀態,它無法協商格式。所以我相信我必須改變/添加/刪除「video/x-raw-yuv,width = 1280,height = 720,framerate = 10/1」參數。但是我應該改變什麼才能使之有效?

PS:如果我插入我的USB攝像頭,我的電腦,我管理記錄720 @用VLC 25fps的沒有任何問題

編輯:當我添加GST_DEBUG = 3之前我GST-launch命令,一些警告顯示向上。

這裏的report

再次編輯:因爲它似乎是一個形式的問題,我想這個列表的每一個: YVU9 YV12 UYVY Y42B Y41B Y41P NV12 NV21 YUV9 I420僅YUY2

作品在10fps的(在25/30不起作用)

任何指針將有很大的幫助;)

感謝

+0

你試圖改變幀率= 10/1〜幀率= 25/1? – 2014-10-23 10:31:47

+0

是的,我沒有得到任何錯誤,當我使用framerate = 10/1。但當我使用framerate = 25/1 – 2014-10-23 11:16:59

+0

時,通過閱讀pastebin,我確實得到了原始帖子中引用的錯誤,我認爲這是網絡攝像頭的v4l2驅動程序的問題:ERROR:來自元素/ GstPipeline:pipeline0/GstV4l2Src:v4l2src0 :無法協商格式。 – 2014-10-23 13:14:30

回答

1

我在imx社區板上問過同樣的問題,他們回答說,這是由於USB讀取速度限制在21Mbps,這是不夠的,因爲720p @ 30fps在沒有編碼時需要30Mbps。

來源 https://community.freescale.com/message/353963#353963

+0

@GerarddeVisser,答案是正確的。 – 2014-10-24 08:02:36