Recherche avancée

Médias (1)

Mot : - Tags -/iphone

Autres articles (97)

  • 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 (...)

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

  • ANNEXE : Les plugins utilisés spécifiquement pour la ferme

    5 mars 2010, par

    Le site central/maître de la ferme a besoin d’utiliser plusieurs plugins supplémentaires vis à vis des canaux pour son bon fonctionnement. le plugin Gestion de la mutualisation ; le plugin inscription3 pour gérer les inscriptions et les demandes de création d’instance de mutualisation dès l’inscription des utilisateurs ; le plugin verifier qui fournit une API de vérification des champs (utilisé par inscription3) ; le plugin champs extras v2 nécessité par inscription3 (...)

Sur d’autres sites (7965)

  • lavc/vvc : Ensure subpictures don't overlap

    22 février, par Frank Plowman
    lavc/vvc : Ensure subpictures don't overlap
    

    This is essentially a re-implementation of
    https://patchwork.ffmpeg.org/project/ffmpeg/patch/20241005223955.54158-1-post@frankplowman.com/

    That patch was not applied last time. Instead we opted to identify
    issues which could be caused by invalid subpicture layouts and remedy
    those issues where they manifest, either through error detection or code
    hardening. This was primarily implemented in the set
    https://patchwork.ffmpeg.org/project/ffmpeg/list/?series=13381.

    This has worked to some degree, however issues with subpicture layouts
    continue to crop up from the fuzzer and I've fixed a number of bugs
    related to subpicture layouts since then. I think it's best to return
    to the initial plan and simply check if the subpicture layout is valid
    initially.

    This implementation is also lighter than the first time — by doing a
    bit more logic in pps_subpic_less_than_one_tile_slice, we are able to
    store a tile_in_subpic map rather than a ctu_in_subpic map. This
    reduces the size of the map to the point it becomes possible to allocate
    it on the stack. Similar to 8bd66a8c9587af61c7b46558be3c4ee317c1af5a,
    the layout is also validated in the slice map construction code, rather
    than in the CBS, which avoids duplicating some logic.

    Signed-off-by : Frank Plowman <post@frankplowman.com>

    • [DH] libavcodec/vvc/ps.c
  • FFmpeg-kit : Unknown encoder 'libx264' / 'mediacodec' and Gradle dependency issues in Android Studio

    15 mai, par Izzet dönertaş

    I'm working on a video editor app in Android Studio using ffmpeg-kit. My goal is to export video segments with fade transitions and audio using FFmpeg.

    &#xA;

    This implementation line works fine :

    &#xA;

    implementation("com.arthenica:ffmpeg-kit-full:6.0-2")&#xA;

    &#xA;

    What doesn't work (Encoding) :&#xA;When I try to export a video segment using :

    &#xA;

    -c:v libx264 -c:a aac&#xA;

    &#xA;

    I get this error in the logs :

    &#xA;

    [vost#0:0 @ ...] Unknown encoder &#x27;libx264&#x27;&#xA;

    &#xA;

    After checking the build configuration, it turns out libx264 is not enabled in the current FFmpeg-kit build :

    &#xA;

    --disable-libx264 (or rather: --enable-libx264 is missing)&#xA;

    &#xA;

    Tried replacing libx264 with mediacodec :&#xA;Then I tried using :

    &#xA;

    -c:v mediacodec -c:a aac&#xA;

    &#xA;

    But again I got :

    &#xA;

    Unknown encoder &#x27;mediacodec&#x27;&#xA;

    &#xA;

    Apparently, mediacodec is supported for decoding, but not as an encoder in FFmpeg-kit.

    &#xA;

    Tried to compile my own FFmpeg binary :&#xA;I attempted building FFmpeg manually using the following flags :

    &#xA;

    --enable-libx264 --enable-gpl --enable-shared ...&#xA;

    &#xA;

    My plan was to access it via JNI or ProcessBuilder.

    &#xA;

    But the process is extremely frustrating :

    &#xA;

      &#xA;
    • Missing file errors
    • &#xA;

    • Configuration conflicts
    • &#xA;

    • Dependency hell (especially on macOS/Linux NDK toolchains)
    • &#xA;

    &#xA;

    Tried other ffmpeg-kit variants :&#xA;I also tried switching to :

    &#xA;

    implementation &#x27;com.arthenica:ffmpeg-kit-full-gpl:6.0&#x27;&#xA;

    &#xA;

    and other variants like ffmpeg-kit-min-gpl, etc.&#xA;But in all of them I got the same Gradle error :

    &#xA;

    Caused by: org.gradle.api.internal.artifacts.ivyservice.TypedResolveException:  Could not resolve all files for configuration &#x27;:app:debugRuntimeClasspath&#x27;.

    &#xA;

    My build.gradle setup (yes, mavenCentral + google are already included) :

    &#xA;

    pluginManagement {&#xA;    repositories {&#xA;        google()&#xA;        mavenCentral()&#xA;    }&#xA;}&#xA;&#xA;dependencyResolutionManagement {&#xA;    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)&#xA;    repositories {&#xA;        google()&#xA;        mavenCentral()&#xA;    }&#xA;}&#xA;&#xA;

    &#xA;

    I also tried enabling offline mode, clearing cache, adding jetpack.io, nothing helped.

    &#xA;

    I asked ChatGPT-4o, Gemini 2.5 Pro. None could provide a working solution for this combination of :

    &#xA;

      &#xA;
    • Working implementation
    • &#xA;

    • Proper video encoding (with libx264 or mediacodec)
    • &#xA;

    • Without breaking Gradle dependency resolution
    • &#xA;

    &#xA;

    I just want one of the following :

    &#xA;

      &#xA;
    1. A working FFmpeg-kit implementation (that supports libx264) and doesn’t crash Gradle

      &#xA;

    2. &#xA;

    3. A reliable guide or build.gradle snippet that lets me use GPL version (with libx264) without resolve errors

      &#xA;

    4. &#xA;

    5. (Ideally) A prebuilt safe LGPL-compatible alternative that allows encoding and is Google Play compliant

      &#xA;

    6. &#xA;

    &#xA;

    Any help or suggestions would be highly appreciated.&#xA;Thanks in advance

    &#xA;

  • CD-R Read Speed Experiments

    21 mai 2011, par Multimedia Mike — Science Projects, Sega Dreamcast

    I want to know how fast I can really read data from a CD-R. Pursuant to my previous musings on this subject, I was informed that it is inadequate to profile reading just any file from a CD-R since data might be read faster or slower depending on whether the data is closer to the inside or the outside of the disc.

    Conclusion / Executive Summary
    It is 100% true that reading data from the outside of a CD-R is faster than reading data from the inside. Read on if you care to know the details of how I arrived at this conclusion, and to find out just how much speed advantage there is to reading from the outside rather than the inside.

    Science Project Outline

    • Create some sample CD-Rs with various properties
    • Get a variety of optical drives
    • Write a custom program that profiles the read speed

    Creating The Test Media
    It’s my understanding that not all CD-Rs are created equal. Fortunately, I have 3 spindles of media handy : Some plain-looking Memorex discs, some rather flamboyant Maxell discs, and those 80mm TDK discs :



    My approach for burning is to create a single file to be burned into a standard ISO-9660 filesystem. The size of the file will be the advertised length of the CD-R minus 1 megabyte for overhead— so, 699 MB for the 120mm discs, 209 MB for the 80mm disc. The file will contain a repeating sequence of 0..0xFF bytes.

    Profiling
    I don’t want to leave this to the vagaries of any filesystem handling layer so I will conduct this experiment at the sector level. Profiling program outline :

    • Read the CD-ROM TOC and get the number of sectors that comprise the data track
    • Profile reading the first 20 MB of sectors
    • Profile reading 20 MB of sectors in the middle of the track
    • Profile reading the last 20 MB of sectors

    Unfortunately, I couldn’t figure out the raw sector reading on modern Linux incarnations (which is annoying since I remember it being pretty straightforward years ago). So I left it to the filesystem after all. New algorithm :

    • Open the single, large file on the CD-R and query the file length
    • Profile reading the first 20 MB of data, 512 kbytes at a time
    • Profile reading 20 MB of sectors in the middle of the track (starting from filesize / 2 - 10 MB), 512 kbytes at a time
    • Profile reading the last 20 MB of sectors (starting from filesize - 20MB), 512 kbytes at a time

    Empirical Data
    I tested the program in Linux using an LG Slim external multi-drive (seen at the top of the pile in this post) and one of my Sega Dreamcast units. I gathered the median value of 3 runs for each area (inner, middle, and outer). I also conducted a buffer flush in between Linux runs (as root : 'sync; echo 3 > /proc/sys/vm/drop_caches').

    LG Slim external multi-drive (reading from inner, middle, and outer areas in kbytes/sec) :

    • TDK-80mm : 721, 897, 1048
    • Memorex-120mm : 1601, 2805, 3623
    • Maxell-120mm : 1660, 2806, 3624

    So the 120mm discs can range from about 10.5X all the way up to a full 24X on this drive. For whatever reason, the 80mm disc fares a bit worse — even at the inner track — with a range of 4.8X - 7X.

    Sega Dreamcast (reading from inner, middle, and outer areas in kbytes/sec) :

    • TDK-80mm : 502, 632, 749
    • Memorex-120mm : 499, 889, 1143
    • Maxell-120mm : 500, 890, 1156

    It’s interesting that the 80mm disc performed comparably to the 120mm discs in the Dreamcast, in contrast to the LG Slim drive. Also, the results are consistent with my previous profiling experiments, which largely only touched the inner area. The read speeds range from 3.3X - 7.7X. The middle of a 120mm disc reads at about 6X.

    Implications
    A few thoughts regarding these results :

    • Since the very definition of 1X is the minimum speed necessary to stream data from an audio CD, then presumably, original 1X CD-ROM drives would have needed to be capable of reading 1X from the inner area. I wonder what the max read speed at the outer edges was ? It’s unlikely I would be able to get a 1X drive working easily in this day and age since the earliest CD-ROM drives required custom controllers.
    • I think 24X is the max rated read speed for CD-Rs, at least for this drive. This implies that the marketing literature only cites the best possible numbers. I guess this is no surprise, similar to how monitors and TVs have always been measured by their diagonal dimension.
    • Given this data, how do you engineer an ISO-9660 filesystem image so that the timing-sensitive multimedia files live on the outermost track ? In the Dreamcast case, if you can guarantee your FMV files will live somewhere between the middle and the end of the disc, you should be able to count on a bitrate of at least 900 kbytes/sec.

    Source Code
    Here is the program I wrote for profiling. Note that the filename is hardcoded (#define FILENAME). Compiling for Linux is a simple 'gcc -Wall profile-cdr.c -o profile-cdr'. Compiling for Dreamcast is performed in the standard KallistiOS manner (people skilled in the art already know what they need to know) ; the only variation is to compile with the '-D_arch_dreamcast' flag, which the default KOS environment adds anyway.

    C :
    1. #ifdef _arch_dreamcast
    2.   #include <kos .h>
    3.  
    4.   /* map I/O functions to their KOS equivalents */
    5.   #define open fs_open
    6.   #define lseek fs_seek
    7.   #define read fs_read
    8.   #define close fs_close
    9.  
    10.   #define FILENAME "/cd/bigfile"
    11. #else
    12.   #include <stdio .h>
    13.   #include <sys /types.h>
    14.   #include </sys><sys /stat.h>
    15.   #include </sys><sys /time.h>
    16.   #include <fcntl .h>
    17.   #include <unistd .h>
    18.  
    19.   #define FILENAME "/media/Full disc/bigfile"
    20. #endif
    21.  
    22. /* Get a current absolute millisecond count ; it doesn’t have to be in
    23. * reference to anything special. */
    24. unsigned int get_current_milliseconds()
    25. {
    26. #ifdef _arch_dreamcast
    27.   return timer_ms_gettime64() ;
    28. #else
    29.   struct timeval tv ;
    30.   gettimeofday(&tv, NULL) ;
    31.   return tv.tv_sec * 1000 + tv.tv_usec / 1000 ;
    32. #endif
    33. }
    34.  
    35. #define READ_SIZE (20 * 1024 * 1024)
    36. #define READ_BUFFER_SIZE (512 * 1024)
    37.  
    38. int main()
    39. {
    40.   int i, j ;
    41.   int fd ;
    42.   char read_buffer[READ_BUFFER_SIZE] ;
    43.   off_t filesize ;
    44.   unsigned int start_time, end_time ;
    45.  
    46.   fd = open(FILENAME, O_RDONLY) ;
    47.   if (fd == -1)
    48.   {
    49.     printf("could not open %s\n", FILENAME) ;
    50.     return 1 ;
    51.   }
    52.   filesize = lseek(fd, 0, SEEK_END) ;
    53.  
    54.   for (i = 0 ; i <3 ; i++)
    55.   {
    56.     if (i == 0)
    57.     {
    58.       printf("reading inner 20 MB...\n") ;
    59.       lseek(fd, 0, SEEK_SET) ;
    60.     }
    61.     else if (i == 1)
    62.     {
    63.       printf("reading middle 20 MB...\n") ;
    64.       lseek(fd, (filesize / 2) - (READ_SIZE / 2), SEEK_SET) ;
    65.     }
    66.     else
    67.     {
    68.       printf("reading outer 20 MB...\n") ;
    69.       lseek(fd, filesize - READ_SIZE, SEEK_SET) ;
    70.     }
    71.     /* read 20 MB ; 40 chunks of 1/2 MB */
    72.     start_time = get_current_milliseconds() ;
    73.     for (j = 0 ; j <(READ_SIZE / READ_BUFFER_SIZE) ; j++)
    74.       if (read(fd, read_buffer, READ_BUFFER_SIZE) != READ_BUFFER_SIZE)
    75.       {
    76.         printf("read error\n") ;
    77.         break ;
    78.       }
    79.     end_time = get_current_milliseconds() ;
    80.     printf("%d - %d = %d ms => %d kbytes/sec\n",
    81.       end_time, start_time, end_time - start_time,
    82.       READ_SIZE / (end_time - start_time)) ;
    83.   }
    84.  
    85.   close(fd) ;
    86.  
    87.   return 0 ;
    88. }