Recherche avancée

Médias (91)

Autres articles (74)

  • MediaSPIP version 0.1 Beta

    16 avril 2011, par

    MediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

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

  • Contribute to documentation

    13 avril 2011

    Documentation is vital to the development of improved technical capabilities.
    MediaSPIP welcomes documentation by users as well as developers - including : critique of existing features and functions articles contributed by developers, administrators, content producers and editors screenshots to illustrate the above translations of existing documentation into other languages
    To contribute, register to the project users’ mailing (...)

Sur d’autres sites (11641)

  • Revision 5379 : prise en compte des trucs moches genre le form de conf de contact avancé

    21 avril 2011, par kent1 — Log

    prise en compte des trucs moches genre le form de conf de contact avancé

  • Evolution #2923 (Nouveau) : Remplacement d’un document et date du document

    19 décembre 2012, par - Equipement

    Bonjour, Lors du remplacement d’un document, SPIP garde la date d’origine. Des rédacteurs se plaignent car, lorsqu’ils remplacent un document par une version plus récente, ils veulent que ce soit la date du dépôt de la dernière version qui soit prise en compte. Comme la Charte Internet de l’Etat (...)

  • How to apply dynamic watermarking for users watching video in real-time ? [closed]

    3 janvier, par Barun Bhattacharjee

    I am working on a video streaming project where I need to apply a dynamic watermarking (e.g., username and email) in real-time for security purposes. The video is being streamed in DASH format, and the segment files are in .m4s format generated via FFmpeg.

    


    Challenges :
Is it possible to directly apply dynamic watermarking to .m4s segment files ?

    


    Video segments are generated using FFmpeg with the following command :

    


    ffmpeg
    .input(video_path)
    .output(mpd_path,
            format='dash',
            map='0',
            video_bitrate='2400k',
            video_size='1920x1080',
            vcodec='libx264',
            seg_duration='4',  # Sets segment duration to 4 seconds
            acodec='copy')
    .run()



    


    What I tried :
I attempted to use FFmpeg to apply a watermark dynamically to the .m4s files using the drawtext filter, but .m4s files are not always recognized as valid input for FFmpeg operations.

    


    # FFmpeg command to add watermark to m4s file
try:
    # FFmpeg processing
    out, err = (
        ffmpeg
        .input(m4s_file_path)  # Input the segment file
        .filter(
            "drawtext",
            text=user_info,
            fontfile="font/dejavu-sans/DejaVuSans-Bold.ttf",
            fontsize=24,
            fontcolor="white",
            x=10,
            y=10
        )
        .output(
            "pipe:",  # Stream output as a byte stream
            format="mp4",  # Output format as MP4 (compatible with MPEG-DASH)
            vcodec="libx264",
            acodec="copy",
            movflags="frag_keyframe+empty_moov"
        )
        .run(capture_stdout=True, capture_stderr=True)
    )

    logger.info(f"FFmpeg process completed. stdout length: {len(out)}, stderr: {err.decode('utf-8')}")
    logger.error(f"FFmpeg stderr: {err.decode('utf-8')}")
    return out  # Return the processed video stream data


except ffmpeg.Error as e:
    stderr_output = e.stderr.decode('utf-8') if e.stderr else "No stderr available"
    logger.error(f"FFmpeg error: {stderr_output}")

    raise RuntimeError(f"Error processing video: {stderr_output}")



    


    Error I faced :

    


    video-streaming-backend  | [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f1bf99cc640] Could not find codec parameters for stream 0 (Video: h264 (avc1 / 0x31637661), none(tv, bt709), 1920x1012): unspecified pixel format
video-streaming-backend  | Consider increasing the value for the 'analyzeduration' (10000000) and 'probesize' (5000000) options
video-streaming-backend  | Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'http://web:8000/media/stream_video/chunks/ec1db006-b488-47ad-8220-79a05bcaae39/segments/init-stream0.m4s':
video-streaming-backend  |   Metadata:
video-streaming-backend  |     major_brand     : iso5
video-streaming-backend  |     minor_version   : 512
video-streaming-backend  |     compatible_brands: iso5iso6mp41
video-streaming-backend  |     encoder         : Lavf60.16.100
video-streaming-backend  |   Duration: N/A, bitrate: N/A
video-streaming-backend  |   Stream #0:0[0x1](und): Video: h264 (avc1 / 0x31637661), none(tv, bt709), 1920x1012, SAR 1:1 DAR 480:253, 12288 tbr, 12288 tbn (default)
video-streaming-backend  |     Metadata:
video-streaming-backend  |       handler_name    : VideoHandler
video-streaming-backend  |       vendor_id       : [0][0][0][0]
video-streaming-backend  | Stream mapping:
video-streaming-backend  |   Stream #0:0 (h264) -> drawtext:default
video-streaming-backend  |   drawtext:default -> Stream #0:0 (libx264)
video-streaming-backend  | Press [q] to stop, [?] for help
video-streaming-backend  | Cannot determine format of input stream 0:0 after EOF
video-streaming-backend  | Error marking filters as finished
video-streaming-backend  | Error while filtering: Invalid data found when processing input
video-streaming-backend  | [out#0/mp4 @ 0x7f1bf8e73100] Nothing was written into output file, because at least one of its streams received no packets.
video-streaming-backend  | frame=    0 fps=0.0 q=0.0 Lsize=       0kB time=N/A bitrate=N/A speed=N/A    
video-streaming-backend  | Conversion failed!



    


    These errors have left me wondering if .m4s is a viable format for dynamic watermarking. If it's not, what would be the correct approach ?