Hi,
I am sorry to ask such simple questions, but I am very confused about exactly what I should do next.
I apologize ahead of time, if this is the wrong forum to post these questions, please send me to
the right forum (if any) where I can get my questions asked.
The imx6 on paper looks like an ideal choice (the processing power as well as the video
encoding) for an application that I want to do (Video/Image Encoding (to MP4/JPEG or
whatever format is appropriate).
Anyways, I need to be able to prove that the imx6 is the right tool for the task. So I bought
a Sabre-lite that and camera (but NO LCD) that was delivered today. I only have a console
to it - and a 'demo' of sometype is running...but I can't see anything..
I am currently used to TI toolchain (and in the past - I"ve used a custom LTIB from Freescale (85xx uP),
So where do I get the equivalent (and hopefully a demo program that is already built for what I need
to test).
Thanks in advance (and apologies if this post is inappropriate).
Tom Morrison
I looked for the command line you are using and I was not able to find it. Could you, please, share it again?
What´s the output for
gst-launch -v --gst-debug=2 mfw_v4lsrc ! mfw_v4lsink
??
original:
gst-launch mfw_v4lsrc capture-width=1280 capture-height=720 capture-mode=4 ! vpuenc codec=6 bitrate=11111111 \
! filesink location=a.264
That does NOT work, but it DOES work when you take oiut the capture-height/width/mode. But, the video is MUCH less
desirable (frame rate is low (very jerky) and the image quality isn't the best.
So, it is functional - but NOT very good quality!
tom
Understand. The problem is not that your camera does not work.
But, that your camera does not work for 1280x720!
So, you CAN access your camera.
The debug process is different :smileywink:
As I known, this feature was included in latest bsp, so, some old BSP did not included it.
UPDATED: Sorry, this feature was included for imx53 (and I tested it over here) But for imx6 I (personally) haven´t tested yet...
What´s your kernel version? And your gstreamer plugin version?
I want to be clear:
I am using the lightly modified freescale release of 8/12 - that can be downloaded from http://boundarydevices.com/er-6-2012-08-beta-for-i-mx6/:
The default Timesys version (came uSD card that came with board and works but not perfect)t
I just used Timesys Linuxlink free web interface and that works just the same as uSD version:
Have any of you had any experience with vpuenc and mp4mux?
tom
On this end, I don’t have a camera to plug into a Sabrelite, but I have been able to record from a webcam on an Ubuntu 12.04 Linux host using the following gst-launch command:
# gst-launch v4l2src num-buffers=50 ! queue ! x264enc ! mp4mux ! filesink location=video.mp4
I can then play the video.mp4 file using mplayer with no problems.
# mplayer video.mp4
This seems to validate the mp4mux element function.
It looks like the issue might be with the camera capture part of the pipeline – have you been able to look into other resolutions on the sensor?
I checked out gst-inspect on the mfw_v4lsrc element and I saw where it indicates that it is important to specify the capture-width and capture-height, but I think the mode is a bit redundant (i.e. capture-mode=4 defines a width and height for the sensor). Have you tried leaving the width and height out and just specifying capture-mode?
Hi John,
It sounds like you proved that mp4mux works on a Ubuntu system.
But, that doesn't help when I am trying to run this directly on the
ER6-1208-Beta Release (Freescale Release via Boundary devices).
There are several different things that go wrong.
a) the mfw_v4lsrc does NOT have the capture-width/height/mode in its Element properties
(do a gst-inspect mfw_v4lsrc --> you will see that this capture device does NOT have this)
b) the capture-mode is NOT just height/width. Its also mode (720P60 (60 FPS progressive...etc)
You can 'cut out any portion of that image by modifying width/height as well as a starting row/column
for your capture based upon that...
c) With the factory Timesys uSD card - it has ALL of those elements.
d) In ER6-1208-Beta, there is NO x264enc library to put into pipeline
e) in Both the factory Timesys uSD and ER6-120, using the vpuenc, the mp4mux seems
to hang (nothing goes to the filesink, in the following line:
gst-launch mfw_v4lsrc ! vpuenc codec=6 ! mp4mux ! filesink location=a.mp4
-->a.mp4 is an empty file!
So, I see two issues:
1) The gstreamer mfw_v4lsrc plugin was NOT built correctly and thus does NOT have capture elements required.
2) The gstreamer mp4mux plugin seemingly does NOT work with the vpuenc plugin
BTW, I"m the same guy that you wrote to Mark (one of your FAE's in Boston)....I've tried all of what you suggested
still NO JOY!
tom
Hi Tom –
I did put 2 and 2 together and rather than emailing you directly I figured I would try for the community approach. Let me know if you would rather take this off-line.
I’m working on an early access SabreLite with the factory card installed. I have ordered a camera for it and I expect it by COB tomorrow. I’m hoping to replicate your problems and help you through this. It does sound like we are working with early access software on early access hardware.
John
Hi John,
I am OK with community approach.
Just as a recap
Please, review the parameters (mainly resolution) because I´m not sure the exact command can work for your hardware.
VPU lookback (as I remember, it takes picture from camera)
/unit_tests/mxc_vpu_test.out -L "-f 0 -w 640 -h 480"
Preview unit test:
/unit_tests/mxc_v4l2_overlay.out –iw 1280 –ih 720 –ow 640 –oh 480 –m 4 –fr 30 –fg
Capture unit test:
/unit_tests/mxc_v4l2_capture.out –iw 1280 –ih 720 –ow 1280 –oh 720 –m 4 –fr 30 –i 1 ./test.yuv
The camera unit tests seemed to work for the most part. But, it looks like the gst-plugins do NOT
have the associated support (and yes, the modules are loaded).
Hi Tom,
Certainly this is the right place. The term SABRE has become kind of ambiguous since we have many boards called that. I’m guessing you have the one designed by Boundary Devices, right? If so, I’m not sure if the SD that comes with it (if there’s an SD in the box) is already flashed, so you may need to flash your operating system on it to get it to work. Some of our BSP images support that board, you can download one from here:
http://compass.freescale.net/livelink/livelink?func=ll&objId=226290650&objAction=browse&viewType=1
The documentation is in that link too, you can look at the users guide for info on how to flash it. If you don’t have access to the link, you can use Boundary Devices image, which can be found in their web page. I guess it includes a users guide too.
If you have one of the boards designed by us (our boards have a 700-xxxxx number, is this the case?), all of them come with an SD card already flashed and ready to use, you just have to insert it, connect the USB/UART port of the board to your CPU, configure the serial communication console to a baud rate of 115200 with no flow control and turn on the board. You should see communication with the board as soon as you turn it on.
Please let me know the legend on your board and I’ll guide you on how to proceed.
Best regards.
Jorge.
Hi Jorge,
Yes, the Sabre-Lite is the one I am interested in working with. It has an SD (timesys one),
Linux does Boot, but then nothing happens(probably because I have no LCD screen).
I would love to have a freescale boards - perhaps sooner rather than later too...
FYI, I am having an issue connecting to that site (from my home) - I have everything here
to play with this weekend (for some reason, via comcast it cannot resolve compass.freescale.net)
I will try later.
any/all suggestions would be GREATLY appreciated!
tom
Tom,
Did you try connecting it to an HDMI monitor? The devices are configured to boot to HDMI.
Also, just an FYI, take a look at our blog for many i.mx6 tips: http://boundarydevices.com/blog/
Thanks.
Pejman
I have downloaded and booted the Boundary Devices version of the Freescale release:
http://http://boundarydevices.com/er-6-2012-08-beta-for-i-mx6/
But, I am having issues using programs (i.e.: gstreamer) to capture/encode video from the OV5642 camera
(which works with the timesys SD card version). When I use gst-inspect (gst-inspect mfw_v4lsrc) - there are
no control elements <i.e.: capture-width/height/mode>.
And if I try to launch it anyways, it complains about NOT being able to PAUSE...
Still working on getting access to ExtraNet!
Tom
Have you loaded the camera module?
How do I load the camera module? I would assume it would have been loaded by default (built in the kernel itself)?
I don´t know if device baudary default kernel has it built in by default.
Freescale kernel default value is having any camera build as a module.
Try this:
cd /
find -name *.ko | grep capture
You should see camera module file.
Please, let me know your results.
Yes, the camera is installed (ov5642_camera.ko)
root@freescale /$ gst-inspect mfw_v4lsrc
MFW_GST_V4LSRC_PLUGIN 3.0.1 build on Aug 28 2012 14:16:59.
Factory Details:
Long name: v4l2 based camera src
Class: Src/Video
Description: Capture videos by using csi camera
Author(s): Multimedia Team <shmmmw@freescale.com>
Rank: primary (256)
Plugin Details:
Name: v4lsrc.imx
Description: v4l2-based csi camera video src
Filename: /usr/lib/gstreamer-0.10/libmfw_gst_v4lsrc.so
Version: 3.0.1
License: LGPL
Source module: gst-fsl-plugins
Binary package: Freescle Gstreamer Multimedia Plugins
Origin URL: http://www.freescale.com
GObject
+----GstObject
+----GstElement
+----GstBaseSrc
+----GstPushSrc
+----MFWGstV4LSrc
Pad Templates:
SRC template: 'src'
Availability: Always
Capabilities:
ANY
Element Flags:
no flags set
Element Implementation:
Has change_state() function: gst_base_src_change_state
Has custom save_thyself() function: gst_element_save_thyself
Has custom restore_thyself() function: gst_element_restore_thyself
Element has no clocking capabilities.
Element has no indexing capabilities.
Element has no URI handling capabilities.
Pads:
SRC: 'src'
Implementation:
Has getrangefunc(): gst_base_src_pad_get_range
Has custom eventfunc(): gst_base_src_event_handler
Has custom queryfunc(): gst_base_src_query
Has custom iterintlinkfunc(): gst_pad_iterate_internal_links_default
Has getcapsfunc(): gst_base_src_getcaps
Has setcapsfunc(): gst_base_src_setcaps
Has acceptcapsfunc(): gst_pad_acceptcaps_default
Aborted
---
I don't know why it is aborting - but it definitely is inserted, but nothing is home!
Do you have any unit_test? You could try to access your camera using this simple application.
Sorry, again, I don´t know it BD provides it on rootfs
which unit test accesses the camera?