Recherche avancée

Médias (1)

Mot : - Tags -/book

Autres articles (100)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • Creating farms of unique websites

    13 avril 2011, par

    MediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
    This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...)

Sur d’autres sites (14110)

  • GStreamer x264enc and SIGSEGV on Android

    18 juillet 2012, par Cipi

    I am trying to play around with GStreamer-java and it's h.264 encoder (x264enc) on Android.

    Now, I tried to encode raw video from test video source (set its is-live property to TRUE), and when data starts flowing into the x264enc Element, I get SIGSEGV in libx264.so and my app crashes. And it looks like code is dereferencing a NULL... Exact error location is in file "gstreamer_ndk_bundle/x264/encoder/analyse.c" line 963. And it is this line :

    h->mc.memcpy_aligned( h->mb.pic.i8x8_dct_buf, h->dct.luma8x8, sizeof(h->mb.pic.i8x8_dct_buf) );

    My device's CPU is Cortex 8 and it has NEON feature...

    I tried to printout to a file all h structure fields, and no field is uninitialized.

    Android DEBUG info from LogCat : HERE

    My questions :

    1. How can I know what is throwing SIGSEGV, because this line of code seems to be ok ?
    2. Is this a known bug or an expected behavior of x264 encoder on ARM CPU or I am missing some encoder configuration ?
    3. I noticed that if I set property analyse of the encoder to 0x3:0x113 (some random value I found online) I don't get SIGSEGV, encoder seems to work, but I get error in pipeline : Data flow error. Can I just set analyse to a meaningful value ?

    Update

    I fprintf-ed all important "h" fields just before execution runs in x264_mb_analyse_intra() function and just before the line that it breaks, guess it could help : http://pastebin.com/sAfX239j

  • How to play back a video stream on website ?

    11 juillet 2012, par John Smith

    Lets suppose I have a streaming generated from ffmpeg :

    ffmpeg -f dshow -i video="UScreenCapture" -vcodec libx264 -g 30 -f mpegts tcp://127.0.0.1:1234

    on the server Im catching the stuffes like this :

    error_reporting(E_ALL); /* Allow the script to hang around waiting for connections. */
    set_time_limit(30); /* Turn on implicit output flushing so we see what we're getting as it comes in. */
    ob_implicit_flush();

    $address = '127.0.0.1';
    $port = 1234;
    $outfile = dirname(__FILE__)."/output.flv";
    $ofp = fopen($outfile, 'wb');

    if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) { echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n"; sleep (5); die; }
    if (socket_bind($sock, $address, $port) === false) { echo "socket_bind() failed: reason: " . socket_strerror(socket_last_error($sock)) . "\n"; sleep (5); die; }
    if (socket_listen($sock, 5) === false) { echo "socket_listen() failed: reason: " . socket_strerror(socket_last_error($sock)) . "\n"; sleep (5); die; }
    if (($msgsock = socket_accept($sock)) === false) { echo "socket_accept() failed: reason: " . socket_strerror(socket_last_error($sock)) . "\n"; sleep (5); break; }
    do {
       $a = '';
       socket_recv ($msgsock, $a, 65536, MSG_WAITALL);
       fwrite ($ofp, $a);
       fclose ($ofp);
       $ofp = fopen($outfile, 'ab');
       //echo strlen($a)."\r\n";
    } while (true);

    now Im stuck replaying this. VCL player can replay this so its got to be good, but how to put it onto a site ? I know theres HTML5 video tags, but lets not use it, because it might unsupported, and I also failed make it work every way. Is there a flash solution ? Its a dymanic stream, so no start-end !

  • OpenCV and Cloud Cameras

    8 mai 2014, par Alexander

    So as a bit of context ; this program was built originally to work with USB cameras - but a few things changed. I’m trying to convert it to work with networked cameras, but my presence here should make it quite apparent what my level of success has been. I still consider myself somewhat new at programming, and definately new at visual processing/OpenCV - so please forgive a few blunders if I make them. I’m going to try to provide as much detail as possible, so apologies for the length below.


    I’m using :

    • OpenCV 2.4.6.0
    • Microsoft Visual Studio Express 2012
    • C++
    • D-Link Cloud Camera 7100

    I am trying to access the DLink camera’s video feed through OpenCV.

    I can access the camera through it’s IP address with a browser without any issues. Unfourtunately ; my program is less cooperative. I’ve put it on two computers (excluding the computer it gets compiled on, which for unrelated/unchangable reasons cannot be placed on the same network the network camera is on) which both fail to grant my program access to the camera. One computer gives the OpenCV-generated error :

    warning : Error opening file (../../modules/highgui/src/cap_ffmpeg_impl.hpp:529)

    This error occurs with just about everything I try that doesn’t somehow generate more problems. The other computer (same code) generates no such error - it just doesn’t get the camera’s output either.

    For reference - the code in OpenCV’s cap_ffmpeg_impl.hpp around line 529 is as follows :

    522    bool CvCapture_FFMPEG::open( const char* _filename )
    523    {
    524        unsigned i;
    525        bool valid = false;
    526
    527        close();
    528
    529    #if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(52, 111, 0)
    530        int err = avformat_open_input(&ic, _filename, NULL, NULL);
    531    #else
    532        int err = av_open_input_file(&ic, _filename, NULL, 0, NULL);
    533    #endif
    ...
    616    }

    ...for which I have no idea what I’m looking at.

    My entire program is rather large, so I’m editing it down as much as possible to help keep this readable - if I miss something you think is important please leave a comment telling me as much so I can throw it in...

    First up - this is one of the first things in main() so I don’t have to recompile every time I want to try a different value :

    3380    cout << "Please Enter Video Location: ";
    3381    cin >> videoFeedAddress;
    3382    cout << "videoFeedAddress: " << videoFeedAddress << endl;

    Just a simple string value.
    Next up - the actual place we’re having the problem ! Probably...

    Note that in the below code - if networkCam is false and a USB camera is connected there is no problem. The error here is caused by line 153.

    121    void displayCameraView()
    122    {
    123     if(camviewOn) // displayCameraView is triggered by a button the user can press as often as they want. Doesn't mean we want to let them break everything.
    124     {return;}
    125     else
    126     {
    127         CvCapture* cv_cap;
    128         VideoCapture cv_cap_IP;
    129         Mat color_img_IP;
    130         camviewOn = true;
    131         int capture;
    132         IplImage* color_img;
    133         if(!networkCam)
    134         {
    135             cv_cap = cvCaptureFromCAM(0);
    136             Sleep(100);
    137             if(!cv_cap)
    138             {
    139                 setExitError(1002);
    140                 if(textOutput){cout << "Video Error: Video input will not work.\n";}
    141                 MessageBox(hwnd, "Error opening camera.", "Error", MB_ICONEXCLAMATION);
    142                 cvReleaseCapture( &cv_cap );
    143                 cvDestroyWindow("Camera View");
    144                 return;
    145             }
    146             color_img = cvQueryFrame(cv_cap);
    147             clickPointStorage.create(((Mat)color_img).rows, ((Mat)color_img).cols, CV_8UC3);
    148         }
    149         else
    150         {
    151             ///*\
    152            
    153             cv_cap_IP.open(videoFeedAddress);
    154             Sleep(100);
    155             if(!cv_cap_IP.isOpened())
    156             {
    157                 setExitError(1002);
    158                 if(textOutput){cout << "Video Error: Video input will not work.\n";}
    159                 MessageBox(hwnd, "Error opening camera.", "Error", MB_ICONEXCLAMATION);
    160                 cvDestroyWindow("Camera View");
    161                 return;
    162             }
    163             clickPointStorage.create(color_img_IP.rows, color_img_IP.cols, CV_8UC3);
    164    
    165             //\*/
    166         }
    167         clickPointStorage.setTo(Scalar(0, 0, 0));
    168         cvNamedWindow("Camera View", 0); // create window
    169         cvSetMouseCallback("Camera View", CallBackFunc, NULL);
    170         IplImage* IplClickPointStorage = new IplImage(clickPointStorage);
    171         IplImage* Ipl_IP_Img;
    172        
    173         if(!networkCam)
    174         {
    175             for(;;)
    176             {
    177                 IplClickPointStorage = new IplImage(clickPointStorage);
    178                 cvAdd(cvQueryFrame(cv_cap), IplClickPointStorage, color_img); // get frame
    181                 cvShowImage("Camera View", color_img); // show frame
    182                 capture = cvWaitKey(10); // wait 10 ms or for key stroke
    183                 if(capture == 27 || capture == 13 || capture == 32){break;} // if ESC, Return, or space; close window.
    184             }
    185             /* clean up */
    186             cvReleaseCapture( &cv_cap );
    187             delete cv_cap;
    188             delete IplClickPointStorage;
    189         }
    190         else
    191         {
    192             ///*\
    193    
    194             for(;;)
    195             {
    196                 cv_cap_IP.read(color_img_IP);
    197                 IplClickPointStorage = new IplImage(clickPointStorage);
    198                 Ipl_IP_Img = new IplImage(color_img_IP);
    199                 cvAdd(Ipl_IP_Img, IplClickPointStorage, color_img);
    200                 cvShowImage("Camera View", color_img); // show frame
    201                 capture = cvWaitKey(10); // wait 10 ms or for key stroke
    202                 if(capture == 27 || capture == 13 || capture == 32){break;} // if ESC, Return, or space; close window.
    203             }
    204             cv_cap_IP.release();
    205             delete Ipl_IP_Img;
    206             delete IplClickPointStorage;
    207    
    208             //\*/
    209         }
    210         cvDestroyWindow("Camera View");
    211         camviewOn = false;
    212     }
    213     return;
    214    }

    As I said, on one computer I get the above error - both of them give me my own error from here :

    155             if(!cv_cap_IP.isOpened())
    156             {
    157                 setExitError(1002);
    158                 if(textOutput){cout << "Video Error: Video input will not work.\n";}
    159                 MessageBox(hwnd, "Error opening camera.", "Error", MB_ICONEXCLAMATION);
    160                 cvDestroyWindow("Camera View");
    161                 return;
    162             }

    ...which of course tells me cv_cap_IP is not open. One of my primary concerns is with the videoFeedAddress variable. No value I enter seems to get a different result.

    I searched the Googles - and come across a number of different "possible" answers - but none of them seem to work for me. If you attempt to google it yourself you may come across some of these :

    1. This is one of the first configurations my code was in. No dice.
    2. This one is talking about files - not cameras. It also mentions codecs - but I wouldn’t be able to watch it in a web browser if that were the problem, right ? (Correct me if I’m wrong here...)
    3. This one has the wrong error code/points to the wrong line of code !
    4. This one mentions compiling OpenCV with ffmpeg support - but I believe 2.4.6.0 already comes with that all set and ready ! Otherwise it’s not that different from what I’ve already tried.
    5. Now THIS one appears to be very similar to what I have, but the only proposed solution doesn’t really help as I had already located a list of connections. I do not believe this is a duplicate, because as per THIS meta discussion I had a lot more information and so didn’t feel comfortable taking over someone else’s question - especially if I end up needing to add even more information later.

    Back to the videoFeedAddress variable : I found THIS site that lists a number of possible addresses to connect to it. since there exists no 7100 anywhere in the list - and the install is the same for the DCS-7010L I used the addresses found next to the DCS-7010L listings. Most of them can be reached through the browser, confirming that they reach the camera - but they don’t seem to affect the outcome when I change them.

    As per many of the above links, I’ve tried many of them both with any without username:password, port number (554), and variations on ?.mjpg (the format) at the end.

    Any ideas ?