我想通過網絡傳輸一個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不起作用)
任何指針將有很大的幫助;)
感謝
你試圖改變幀率= 10/1〜幀率= 25/1? – 2014-10-23 10:31:47
是的,我沒有得到任何錯誤,當我使用framerate = 10/1。但當我使用framerate = 25/1 – 2014-10-23 11:16:59
時,通過閱讀pastebin,我確實得到了原始帖子中引用的錯誤,我認爲這是網絡攝像頭的v4l2驅動程序的問題:ERROR:來自元素/ GstPipeline:pipeline0/GstV4l2Src:v4l2src0 :無法協商格式。 – 2014-10-23 13:14:30