Hi Luis,

Sorry about the information overload, on the plus side the v4l-info output 
confirms that your webcam outputs raw frames (as does the gst-launch v4l2src 
device=/dev/video0 ! xvimagesink actually working). Could you try running the 
gstreamer command:

"gst-launch -ev v4l2src device=/dev/video0 ! video/x-raw-yuv, width=1280, 
height=1024 ! queue ! ffenc_mpeg2video ! queue ! mpegpsmux ! filesink 
location=testWithResolution.mpg"

Letting it run for a few seconds and then testing to see that the 
testWithResolution.mpg file plays okay? This is similar to the same pipeline 
that will run in matterhorn except that I have added the explicit resolution so 
that it will more likely link okay. If that pipeline works okay could you try:

"gst-launch -ev v4l2src device=/dev/video0 ! queue ! ffenc_mpeg2video ! queue ! 
mpegpsmux ! filesink location=testWithoutResolution.mpg"

Looking especially for the line "streaming task paused, reason not-linked (-1)" 
after the usual "ERROR: from element 
/GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Internal data flow error."

Webcams are great in that they support a variety of resolutions and framerates 
for those resolutions but this makes it difficult for them in my experience to 
link correctly with encoders. Sometimes the encoders demand too many frames at 
the maximum resolution and overwhelm the webcam causing the internal data flow 
error (at least this is what I assume is happening with the webcam I use for 
testing).

If the first gstreamer line works, but not the second I am hoping you should be 
able to capture with these settings:

capture.device.Webcam.type=CUSTOM_VIDEO_SRC
capture.device.Webcam.flavor=presenter/source
capture.device.Webcam.outputfile=Webcam.mpg
capture.device.Webcam.src=/dev/video0
capture.device.Webcam.customProducer=v4l2src device=/dev/video0 ! 
video/x-raw-yuv, width=1280, height=1024 ! queue

Thanks,
Adam

Adam McKenzie
ITS, University of Saskatchewan
Rm 61 Physics, 116 Science Place
Saskatoon SK S7N 5E2 Canada
(306) 966-8241

From: [email protected] 
[mailto:[email protected]] On Behalf Of Luis Galeana
Sent: Thursday, August 02, 2012 6:14 PM
To: Matterhorn Users
Subject: Re: [Matterhorn-users] Capture Agent pipeline

 Hi, Adam,

 I don't like to admit that I feel pretty lost. I attach the output of v4l-info 
and the one of gst-inspect. Also, I can launch the cam with this command 
gst-launch v4l2src device=/dev/video0 ! xvimagesink.

 Thanks a lot.

 Luis Galeana.
2012/8/2 McKenzie, Adam <[email protected]<mailto:[email protected]>>
Hi Luis,

There are a couple of things you can do to try to get more information about 
your device.

Could you run
"v4l-info /dev/video0"

This will spit out a lot of information but the key part is the video capture 
part. For example I have a camera that outputs motion jpeg and the output of 
the video capture looks like this:

video capture
    VIDIOC_ENUM_FMT(0,VIDEO_CAPTURE)
        index                   : 0
        type                    : VIDEO_CAPTURE
        flags                   : 0
        description             : "YUV 4:2:2 (YUYV)"
        pixelformat             : 0x56595559 [YUYV]
    VIDIOC_ENUM_FMT(1,VIDEO_CAPTURE)
        index                   : 1
        type                    : VIDEO_CAPTURE
        flags                   : 1
        description             : "MJPEG"
        pixelformat             : 0x47504a4d [MJPG]

Could you attach the whole output to your reply so that I can perhaps change 
the custom pipeline for your particular device.

If it does say that it uses h264 could you run
"gst-inspect ffdec_h264"

If it complains that the gstreamer-tools are not installed could you install 
them with
"sudo apt-get install gstreamer-tools"

You need this element to actually decode 264 streams in case your webcam 
actually outputs x264. If it isn't installed and complains it is missing you 
might need to run:
"sudo apt-get install gstreamer0.10-ffmpeg"

To enable it and try the custom pipeline again.

Thanks,
Adam
 Adam McKenzie
    Programmer Analyst, Education Applications
    Client Services, Information and Communications Technology
    Ph: (306) 966-8241<tel:%28306%29%C2%A0966-8241>

    <http://www.usask.ca/>
<http://www.usask.ca/>
________________________________
From: [email protected] 
[[email protected]] on behalf of Luis Galeana 
[[email protected]]<http://www.usask.ca/>

Sent: Wednesday, August 01, 2012 6:29 PM
To: Matterhorn Users
Subject: Re: [Matterhorn-users] Capture Agent pipeline<http://www.usask.ca/>
 <http://www.usask.ca/>
 Hi, Adam,

 I changed my configuration to what you said, but I still get the internal 
error message. The log is below. Is there any information that could help 
determine the cause of the failure?

Log:
----------------------------
...
20:19:47  INFO (GStreamerPipeline:430) - Successfully initialised 2 devices.
20:19:47  INFO (CustomVideoProducer:73) - Custom Video Producer is using 
Pipeline: "v4l2src device=/dev/video0 ! queue ! decodebin ! queue"
20:19:48  INFO (GStreamerPipeline:96) - Initializing devices for capture.
20:19:51  INFO (ProducerBin:121) - Sending EOS to stop v4l2src0
20:19:51  WARN (GStreamerPipeline$2:144) - v4l2src0: Internal data flow error.
20:19:51  INFO (ProducerBin:121) - Sending EOS to stop alsasrc0
20:19:54  INFO (AgentStateJob:190) - #7 - State push to 
org.opencastproject.capture.impl.jobs.AgentStateJob@5d59d625 to 
http://localhost:8080/capture-admin/agents/Galeana failed with code 405.
20:19:54  INFO (AgentConfigurationJob:121) - #7 - Capabilities push to 
http://localhost:8080/capture-admin/agents/Galeana/configuration failed with 
code 405.
20:19:54  INFO (AgentStateJob:190) - #7 - State push to 
org.opencastproject.capture.impl.jobs.AgentStateJob@5d59d625 to 
http://localhost:8080/capture-admin/recordings/Unscheduled-Galeana-1343866787387
 failed with code 405.
...
20:20:51 ERROR (CaptureAgentImpl:339) - Unable to start pipeline after 5 
seconds.  Aborting!
---------------------------------------

 Thanks!

 Luis Galeana.

<http://www.usask.ca/>
2012/8/1 McKenzie, Adam <[email protected]><http://www.usask.ca/>
Hi Luis,<http://www.usask.ca/>
 <http://www.usask.ca/>
I noticed in your log that it stated the problem is “Internal data flow error” 
which combined with your comment earlier that your webcam captures in h264 
might be the culprit. Could you try changing your webcam capture device 
settings to:<http://www.usask.ca/>
 <http://www.usask.ca/>
capture.device.Webcam.type=CUSTOM_VIDEO_SRC<http://www.usask.ca/>
capture.device.Webcam.flavor=presenter/source<http://www.usask.ca/>
capture.device.Webcam.outputfile=Webcam.mpg<http://www.usask.ca/>
capture.device.Webcam.src=/dev/video0<http://www.usask.ca/>
capture.device.Webcam.customProducer=v4l2src device=/dev/video0 ! queue ! 
decodebin ! queue<http://www.usask.ca/>
 <http://www.usask.ca/>
The type CUSTOM_VIDEO_SRC specifies that you want to write your own gstreamer 
magic. The customProducer property is the actual gstreamer line that it will 
run when it tries to capture from your webcam. Each of the elements in the 
pipeline are separated with exclamation points “!”. The “v4l2src 
device=/dev/video0” part just tells it to capture from the video 4 linux 2 
device located at /dev/video0. The queues are just in case your system needs a 
bit of a buffer to process and decode the video. Finally the “decodebin” part 
is a gstreamer element that will try to determine what is coming in, attach the 
correct decoder and pass on raw frames for the rest of the pipeline. Please let 
me know if anything else is unclear. <http://www.usask.ca/>
 <http://www.usask.ca/>
Cheers,<http://www.usask.ca/>
Adam<http://www.usask.ca/>
 <http://www.usask.ca/>
Adam McKenzie
ITS, University of Saskatchewan
Rm 61 Physics, 116 Science Place
Saskatoon SK S7N 5E2 Canada
(306) 966-8241<http://www.usask.ca/>
 <http://www.usask.ca/>
From: [email protected] 
[mailto:[email protected]] On Behalf Of Luis Galeana
Sent: Wednesday, August 01, 2012 9:29 AM
To: Matterhorn Users
Subject: Re: [Matterhorn-users] Capture Agent pipeline<http://www.usask.ca/>
 <http://www.usask.ca/>
 Hi again,

 Below is my device configuration and I'm getting some internal error... The 
log is at the end. What do you think that could be the problem?

#Create the presenter capture
capture.device.Webcam.type=V4L2SRC
capture.device.Webcam.flavor=presenter/source
capture.device.Webcam.outputfile=Webcam.mpg
capture.device.Webcam.src=/dev/video0

#Create the audio capture
capture.device.test.src=hw:0
capture.device.test.outputfile=test.mp2
capture.device.test.flavor=presenter/source
capture.device.test.buffer.bytes=536870912
capture.device.names=Webcam, test

Log:
------------------
21:55:41  INFO (AgentStateJob:190) - #4 - State push to 
org.opencastproject.capture.impl.jobs.AgentStateJob@2e647edd to 
http://localhost:8080/capture-admin/agents/Galeana failed with code 405.
21:55:41  INFO (AgentConfigurationJob:121) - #4 - Capabilities push to 
http://localhost:8080/capture-admin/agents/Galeana/configuration failed with 
code 405.
21:55:44  INFO (GStreamerPipeline:430) - Successfully initialised 2 devices.
21:55:45  INFO (GStreamerPipeline:96) - Initializing devices for capture.
21:55:48  INFO (ProducerBin:121) - Sending EOS to stop v4l2src0
21:55:48  INFO (ProducerBin:121) - Sending EOS to stop alsasrc0
21:55:48  WARN (GStreamerPipeline$2:144) - v4l2src0: Internal data flow error.
21:55:51  INFO (AgentStateJob:190) - #5 - State push to 
org.opencastproject.capture.impl.jobs.AgentStateJob@7a7683b1 to 
http://localhost:8080/capture-admin/agents/Galeana failed with code 405.
21:55:51  INFO (AgentConfigurationJob:121) - #5 - Capabilities push to 
http://localhost:8080/capture-admin/agents/Galeana/configuration failed with 
code 405.
21:55:51  INFO (AgentStateJob:190) - #5 - State push to 
org.opencastproject.capture.impl.jobs.AgentStateJob@7a7683b1 to 
http://localhost:8080/capture-admin/recordings/Unscheduled-Galeana-1343699744653
 failed with code 405.
...
21:56:48 ERROR (CaptureAgentImpl:339) - Unable to start pipeline after 5 
seconds.  Aborting!
-------------------

 P.S. I couldn't fix the push and capabilities errors. Could you elaborate a 
little bit on what I should do? I see that both config.properties files - the 
core and the capture agent - have the same url, as well as the 
org.opencastproject.capture.core.url.

 Thanks a lot!!

 Luis Galeana.<http://www.usask.ca/>
 <http://www.usask.ca/>

_______________________________________________
Matterhorn-users mailing list
[email protected]
http://lists.opencastproject.org/mailman/listinfo/matterhorn-users<http://www.usask.ca/>
 <http://www.usask.ca/>

_______________________________________________
Matterhorn-users mailing list
[email protected]
http://lists.opencastproject.org/mailman/listinfo/matterhorn-users<http://www.usask.ca/>
 <http://www.usask.ca/>
_______________________________________________
Matterhorn-users mailing list
[email protected]
http://lists.opencastproject.org/mailman/listinfo/matterhorn-users

Reply via email to