Recherche avancée

Médias (91)

Autres articles (61)

  • Formulaire personnalisable

    21 juin 2013, par

    Cette page présente les champs disponibles dans le formulaire de publication d’un média et il indique les différents champs qu’on peut ajouter. Formulaire de création d’un Media
    Dans le cas d’un document de type média, les champs proposés par défaut sont : Texte Activer/Désactiver le forum ( on peut désactiver l’invite au commentaire pour chaque article ) Licence Ajout/suppression d’auteurs Tags
    On peut modifier ce formulaire dans la partie :
    Administration > Configuration des masques de formulaire. (...)

  • MediaSPIP en mode privé (Intranet)

    17 septembre 2013, par

    À partir de la version 0.3, un canal de MediaSPIP peut devenir privé, bloqué à toute personne non identifiée grâce au plugin "Intranet/extranet".
    Le plugin Intranet/extranet, lorsqu’il est activé, permet de bloquer l’accès au canal à tout visiteur non identifié, l’empêchant d’accéder au contenu en le redirigeant systématiquement vers le formulaire d’identification.
    Ce système peut être particulièrement utile pour certaines utilisations comme : Atelier de travail avec des enfants dont le contenu ne doit pas (...)

  • De l’upload à la vidéo finale [version standalone]

    31 janvier 2010, par

    Le chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
    Upload et récupération d’informations de la vidéo source
    Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
    Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier ; La génération d’une vignette : extraction d’une (...)

Sur d’autres sites (8058)

  • What's difference between using ffmpeg vs Native Hls to download M3U8 file ?

    11 octobre 2017, par Mike Ross

    I use youtube-dl to download M3U8 video (Not live streaming )
    But when I download video using Ffmpeg, if i interrupt download it’s not possible to resume downloads
    When i use --hls-prefer-native tag I’m able to resume downloads.
    My question is what’s difference between the both ? And which is best between these two ?
    Only difference I can find is that the video created using Native Hls has no thumbnail in Ubuntu File Manager !!

  • How can I generate a metadata.mov file for higher-resolution Live Photos (e.g. 1440x2560) ?

    30 juillet, par brijesh patel

    I'm generating Live Photos programmatically for use as wallpapers on iOS. I'm using a known metadata.mov file bundled with the app (likely extracted from a working Live Photo with resolution 1080x1920). This setup works fine when I use a video of the same resolution.

    


    I'm using this open-source library to handle the video-to-LivePhoto conversion :
    
https://github.com/TouSC/Video2LivePhoto

    


    However, when I try using a higher-resolution video (e.g. 2560x1440) to avoid black bars on high-resolution devices (like iPhone 14 Pro Max), the Photos app shows the Live Photo, but the motion component doesn't work—it just says “Motion Not Available.”

    


    I believe the issue is that the static metadata.mov contains resolution-specific metadata, which prevents it from working correctly with other video sizes.

    


      

    • Tried changing the resolution of the video (e.g. 1440x2560, 1284x2778) – motion breaks.

      


    • 


    • Tried generating a new .mov file using FFmpeg with a silent video track, matching the new resolution – Live Photo not recognized or shows errors.

      


    • 


    • Tried modifying the existing metadata.mov with tools like FFmpeg, AtomicParsley, Bento4, and mp4box – resulting files often break the Live Photo entirely.

      


    • 


    • I expected to generate a valid metadata.mov (or similar track) that would support the custom resolution and restore Live Photo motion support.

      


    • 


    


    static func convertVideo(videoURL: URL, complete: @escaping (_ success: Bool, _ errorMessage: String?) -> Void) {
    print("start converting")
    
    guard let metaURL = Bundle.main.url(forResource: "metadata", withExtension: "mov") else {
        complete(false, "metadata.mov not found")
        return
    }

    let livePhotoSize = CGSize(width: 1440, height: 2560) // <-- updated resolution
    let livePhotoDuration = CMTime(value: 550, timescale: 600)
    let assetIdentifier = UUID().uuidString

    guard let documentPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first else {
        complete(false, "Document path not found")
        return
    }

    let durationPath = documentPath + "/duration.mp4"
    let acceleratePath = documentPath + "/accelerate.mp4"
    let resizePath = documentPath + "/resize.mp4"
    let finalPath = resizePath

    removeFileIfExists(at: durationPath)
    removeFileIfExists(at: acceleratePath)
    removeFileIfExists(at: resizePath)

    let converter = Converter4Video(path: finalPath)

    Task {
        do {
            try await converter.durationVideo(at: videoURL, outputPath: durationPath, targetDuration: 3)
            try await converter.accelerateVideo(at: durationPath, to: livePhotoDuration, outputPath: acceleratePath)
            try await converter.resizeVideo(at: acceleratePath, outputPath: resizePath, outputSize: livePhotoSize)

            print("### resize Success")
            let image = try await generateCGImage(finalPath: finalPath)

            await generateLivePhoto(
                image: image,
                documentPath: documentPath,
                assetIdentifier: assetIdentifier,
                metaURL: metaURL,
                converter: converter,
                complete: complete
            )
        } catch {
            print("Video conversion error: \(error)")
            complete(false, error.localizedDescription)
            return
        }
    }
}


    


  • Revision a43bdcd7b0 : Merge "halloc : Cast the offsetof macro to ptrdiff_t before negating"

    11 juin 2013, par Johann

    Merge "halloc : Cast the offsetof macro to ptrdiff_t before negating"