Recherche avancée

Médias (91)

Autres articles (98)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

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

  • Submit bugs and patches

    13 avril 2011

    Unfortunately a software is never perfect.
    If you think you have found a bug, report it using our ticket system. Please to help us to fix it by providing the following information : the browser you are using, including the exact version as precise an explanation as possible of the problem if possible, the steps taken resulting in the problem a link to the site / page in question
    If you think you have solved the bug, fill in a ticket and attach to it a corrective patch.
    You may also (...)

Sur d’autres sites (11441)

  • 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 ?

    


  • Revision 77619 : Utiliser la boucle DATA au lieu de la boucle POUR Utiliser une notation ...

    24 octobre 2013, par kent1@… — Log

    Utiliser la boucle DATA au lieu de la boucle POUR
    Utiliser une notation plus moderne pour les inclusions
    On utilise le critère media_defaut = ... pour la sélection des formats vidéos et sonores

  • Revision 77619 : Utiliser la boucle DATA au lieu de la boucle POUR Utiliser une notation ...

    24 octobre 2013, par kent1@… — Log

    Utiliser la boucle DATA au lieu de la boucle POUR
    Utiliser une notation plus moderne pour les inclusions
    On utilise le critère media_defaut = ... pour la sélection des formats vidéos et sonores