Recherche avancée

Médias (0)

Mot : - Tags -/organisation

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (84)

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • List of compatible distributions

    26 avril 2011, par

    The table below is the list of Linux distributions compatible with the automated installation script of MediaSPIP. Distribution nameVersion nameVersion number Debian Squeeze 6.x.x Debian Weezy 7.x.x Debian Jessie 8.x.x Ubuntu The Precise Pangolin 12.04 LTS Ubuntu The Trusty Tahr 14.04
    If you want to help us improve this list, you can provide us access to a machine whose distribution is not mentioned above or send the necessary fixes to add (...)

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

Sur d’autres sites (12220)

  • No Implementation Found for init method in Youtube Live Streaming Watch me project

    17 mai 2017, par Basha

    I am new to android development.presently I am Working on Youtube Live Streaming and downloaded watchMe project.I am getting the error in my class where I used to load FFMPEG libffmpeg.so file and the error was cannot resolve "init" method. and getting error while running the application as below

    java.lang.UnsatisfiedLinkError: No implementation found for boolean com.google.sai.apps.watchme.Ffmpeg.init(int, int, int, java.lang.String) (tried Java_com_google_sai_apps_watchme_Ffmpeg_init and Java_com_google_sai_apps_watchme_Ffmpeg_init__IIILjava_lang_String_2)
                                                                                        at com.google.sai.apps.watchme.Ffmpeg.init(Native Method)
                                                                                        at com.google.sai.apps.watchme.VideoStreamingConnection.open(VideoStreamingConnection.java:71)
                                                                                        at com.google.sai.apps.watchme.StreamerService.startStreaming(StreamerService.java:73)
                                                                                        at com.google.sai.apps.watchme.StreamerActivity.startStreaming(StreamerActivity.java:163)
                                                                                        at com.google.sai.apps.watchme.StreamerActivity.access$200(StreamerActivity.java:39)
                                                                                        at com.google.sai.apps.watchme.StreamerActivity$1.onServiceConnected(StreamerActivity.java:55)
                                                                                        at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1223)
                                                                                        at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1240)
                                                                                        at android.os.Handler.handleCallback(Handler.java:739)
                                                                                        at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                                        at android.os.Looper.loop(Looper.java:148)
                                                                                        at android.app.ActivityThread.main(ActivityThread.java:5438)
                                                                                        at java.lang.reflect.Method.invoke(Native Method)
                                                                                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:762)
                                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:652)
       05-17 11:31:41.415 23434-25678/com.google.sai.apps.watchme E/ImageFetcher: Error in downloadBitmap - java.io.FileNotFoundException: https://i.ytimg.com/vi/FFvfpXcOpYk/default_live.jpg

    and FFMPEG class was

    public class Ffmpeg {


       static {
           System.loadLibrary("ffmpeg");
       }


       public static native boolean init(int width, int height, int audio_sample_rate, String rtmpUrl);

       public static native void shutdown();

       // Returns the size of the encoded frame.
       public static native int encodeVideoFrame(byte[] yuv_image);

       public static native int encodeAudioFrame(short[] audio_data, int length);
    }

    please someone help me.

  • Can ffmpeg trim the beginning of a video as it's written ?

    3 janvier 2024, par ttshaw1

    I'm working on an Android app where I want to keep a 30s buffer of video, and at arbitrary times save it. I have a few requirements :

    


      

    • I want to make sure I don't miss or duplicate any frames. So I think periodically starting and stopping recording won't work
    • 


    • I found that simultaneously encoding two video streams puts my CPU under a lot of strain, so I want to avoid doing that
    • 


    • I don't want to store a ring buffer of 30s worth of frames in memory as that'll require too much memory. So I think I need to encode them to a video file on disk as they come in. (though I'm realizing maybe I could write the frames to disk and encode them when I have a 30s buffer I want to keep)
    • 


    


    This all leads me to think the best solution would be something like a typical camera app where a video is written to an mp4 file as it's recorded. But to keep the filesize reasonable, I'd like to have the output file continuously trimmed to the last 30s, plus or minus a keyframe interval.

    


    I know that ffmpeg can do that for a video that's not being currently written. But I don't know if something about the format of an mp4 would prevent doing that for a video that is being written. For example, if an mp4 was essentially a series of bitmaps with timestamps, I'd think it's easy for ffmpeg to chop off some number of frames at the beginning while the camera API is writing frames to the end. Is there anything about the mp4 format that makes it too complicated to do that in practice ? Or is this a question that depends on the camera API's implementation ?

    


  • ISO-9660 Compromise, Part 2 : Finding Root

    25 octobre 2021, par Multimedia Mike — General

    A long time ago, I dashed off a quick blog post with a curious finding after studying the ISO-9660 spec : The format stores multi-byte numbers in a format I termed “omni-endian”– the committee developing the format apparently couldn’t come to an agreement on this basic point regarding big- vs. little-endian encoding (I’m envisioning something along the lines of “tastes great ! … less filling !” in the committee meetings).

    I recently discovered another bit of compromise in the ISO-9660 spec : It seems that there are 2 different methods for processing the directory structure. That means it’s incumbent upon ISO-9660 creation software to fill in the data structures to support both methods, because some ISO-reading programs out there rely on one set of data structures while the rest prefer to read the other set.

    Background

    As a refresher, the “ISO” extension of an ISO file refers to the ISO-9660 specification. This is a type of read-only filesystem (i.e, the filesystem is created once and never updated after initial creation) for the purpose of storing on a read-only medium, often an optical disc (CD-ROM, DVD-ROM). The level of nostalgic interest I display for the ISO-9660 filesystem reminds me of my computer science curriculum professors from the mid-90s reminiscing about ye olden days of punchcard programming, but such is my lot. I’m probably also alone in my frustration of seeing rips of, e.g., GameCube or Xbox or 3DO games being tagged with the extension .ISO since those systems use different read-only filesystems.

    I recently fell in with an odd bunch called the eXoDOS project and was trying to help fill in a few gaps. One request was a 1994 game called Power Drive for DOS.


    Power Drive CD-ROM


    My usual CD-ROM ripping method (for the data track) is a simple ‘dd’ command from a Linux command line to copy the string of raw sectors. However, it turned out to be unusually difficult to open the resulting ISO. A few of the the options I know of worked but most didn’t. What’s the difference ?

    Methods that work :

    • Mounting the file with the Linux iso9660 kernel module, i.e.,
      mount -t iso9660 /dev/optical-drive /mnt

      or

      mount -t iso9660 -o loop /path/to/Power-Drive.iso /mnt
    • Directory Opus
    • Windows 10 can read the filesystem when reading the physical disc
    • Windows 10 can burn the ISO image to a new CD (“right click” -> “Burn disc image”) ; this method does not modify any of the existing sectors but did append 149 additional empty sectors

    Methods that don’t work :

    Understanding The Difference

    I think I might have a handle on why some tools are able to process this disc while most can’t. There appears to be 2 sets of data structures to describe the base of the filesystem : A root directory, and a path table. These both occur in the first substantive sector of the ISO-9660 filesystem, usually sector 16.

    A compact disc can be abstractly visualized as a long string of sectors, each one 2,352 bytes long. (See my Grand Unified Theory of Compact Disc post for deeper discussion.) A CD-ROM data track will contain 2048 bytes of data. Thus, sector 16 appears at 0x8000 of an ISO filesystem. I like the clarity of this description of the ISO-9660 spec. It shows that the path table is defined at byte 140 (little-endian ; big comes later) and location of the root directory is at byte 158. Thus, these locations generally occur at 0x808c and 0x809e.


    Primary Volume Descriptor
    Primary Volume Descriptor

    The path table is highlighted in green and the root directory record is highlighted in red. These absolute locations are specified in sectors. So the path table is located at sector 0x12 = offset 0x9000 in the image, while the root directory record is supposed to be at sector 0x62 = 0x31000. Checking into those sectors, it turns out that the path table is valid while the root directory record is invalid. Thus, any tool that relies on the path table will be successful in interpreting the disc, while tools that attempt to recursively traverse starting from root directory record are gonna have a bad time.

    Since I was able to view the filesystem with a few different tools, I know what the root directory contains. Searching for those filenames reveals that the root directory was supposed to point to the next sector, number 0x63. So this was a bizarre off-by-1 error on the part of the ISO creation tool. Maybe. I manually corrected 0x62 -> 0x63 and that fixed the interaction with fuseiso, but not with other tools. So there may have been some other errors. Note that a quick spot-check of another, functional ISO revealed that this root directory sector is supposed to be exact, not 1-indexed.

    Upon further inspection, I noticed that, while fuseiso appeared to work with that one patch, none of the files returned correct data, and none of the directories contained anything. That’s when I noticed that ALL of the sector locations described in the various directory and file records are off by 1 !

    Further Investigation

    I have occasionally run across ISO images on the Internet Archive that return the error about not being able to read the contents when trying to “View contents” (error text : “failed to obtain file list from xyz.iso”, as seen with this ISO). Too bad I didn’t make a record of them because I would be interested to see if they have the same corruption.

    Eventually, I’ll probably be able to compile an archive of deviant ISO-9660 images. A few months ago, I was processing a large collection from IA and found a corrupted ISO which had a cycle, i.e., the subdirectory pointed to a parent directory, which caused various ISO tools to loop forever. Just one of those things that is “never supposed to happen”, so why write code to deal with it gracefully ?

    See Also

    The post ISO-9660 Compromise, Part 2 : Finding Root first appeared on Breaking Eggs And Making Omelettes.