Recherche avancée

Médias (3)

Mot : - Tags -/plugin

Autres articles (103)

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

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;

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

Sur d’autres sites (15234)

  • Manim Animation Rendering Fails on Google Cloud Run : Segment Combination Issues [closed]

    28 juin, par Ahaskar Kashyap

    Problem Summary

    


    I'm running a Manim animation server on Google Cloud Run that successfully creates video segments but fails during the FFmpeg combination step. The behavior is inconsistent based on the number of segments created.

    


    Environment

    


      

    • Platform : Google Cloud Run (8GB RAM, 4 CPU)
    • 


    • Container : Debian 12 (bookworm) with Python 3.9.23
    • 


    • FFmpeg : 5.1.6 (with h264 support enabled)
    • 


    • Manim : Latest version with -ql (480p15) quality setting
    • 


    • Timeout : 240 seconds
    • 


    


    Observed Behavior

    


    




    


    


    


    


    


    


    



    


    


    


    


    


    


    


    


    


    


    


    


    Animation Complexity Segments Created Final Video Status
    Simple (2 segments) ✅ Success ✅ Created (7,681 bytes) ❌ Reports "failed"
    Complex (8+ segments) ✅ Success ❌ Not created ❌ Actually fails

    


    Code Structure

    


    # Manim command used
manim_cmd = [
    'manim', python_file, scene_class,
    '--media_dir', output_dir,
    '-ql',  # Low quality (480p15)
    '--disable_caching',
    '--output_file', f"{output_filename}.mp4",
    '--verbosity', 'ERROR',
    '--progress_bar', 'none',
    '--write_to_movie'
]


    


    Specific Issues

    


    Issue 1 : False Negatives (Simple Animations)

    


      

    • What happens : Manim creates 2 segments successfully, FFmpeg combines them into final video
    • 


    • Problem : Final video exists and is playable, but process reports "Manim failed (code 1)"
    • 


    • Evidence : Can download the "failed" video via /videos/filename.mp4 and it plays correctly
    • 


    


    Issue 2 : Real Failures (Complex Animations)

    


      

    • What happens : Manim creates 8+ segments successfully
    • 


    • Problem : FFmpeg combination step genuinely fails, no final video created
    • 


    • Error : Process exits with code 1, only partial segments remain
    • 


    


    Key Questions

    


      

    1. Why does FFmpeg combination work for 2 segments but fail for 8+ segments ?
    2. 


    3. Why does the same code work locally but fail on Cloud Run ?
    4. 


    5. Is this a Cloud Run container limitation, FFmpeg configuration issue, or Manim-specific problem ?
    6. 


    7. How can I debug FFmpeg combination failures in a containerized environment ?
    8. 


    


    File Structure (When Working)

    


    /app/manim_animations/
└── animation_name/
    └── videos/
        └── animation_name_1234/
            └── 480p15/
                ├── partial_movie_files/
                │   └── SceneClass/
                │       ├── uncached_00000.mp4
                │       └── uncached_00001.mp4
                └── final_animation.mp4  # This gets created for 2 segments


    


    Error Output

    


    🔒 ISOLATED: Manim return code: 1
Manim failed (code 1): [stderr contains FFmpeg errors]


    


    Has anyone encountered similar issues with Manim + FFmpeg on Cloud Run or other containerized environments ? Any insights into why segment count affects combination success would be greatly appreciated.

    


    Investigation Results

    


    What Works :

    


      

    • ✅ Local development (identical code works perfectly)
    • 


    • ✅ FFmpeg installation (ffmpeg -version works, h264 encoders available)
    • 


    • ✅ Segment creation (all uncached_*.mp4 files created with correct sizes)
    • 


    • ✅ Simple animations after container restart
    • 


    


    What Doesn't Work :

    


      

    • ❌ Segment combination for 8+ segments
    • 


    • ❌ Status detection for 2-segment animations
    • 


    • ❌ Animations after multiple renders (resource accumulation ?)
    • 


    


    Theories Tested :

    


      

    1. Resource constraints : Upgraded to 16GB/8CPU - made things worse
    2. 


    3. FFmpeg version : Upgraded 5.1.6→7.x - broke basic functionality
    4. 


    5. File accumulation : Container restart helps temporarily
    6. 


    7. Path detection : Isolation script may look in wrong directories
    8. 


    


  • Encoding a growing video file in realtime fails prematurely

    17 janvier 2023, par Macster

    This batch script is repeatedly concatenating video clips from an textfile. The output file is then beeing encoded in realtime into dash format. Unfortunately the realtime encoding will always end prematurely and I can't figure out why. From what I observed, it shouldn't be possible that the realtime encoding would catch up to the concating - which is happening each time after the duration of the clip that was just added - because I'm setting an offset, to when the encoding has to start, via timeout.

    


    I've tried other formats like .mp4 and .h264 and other options, but nothing seems to help. So my assumption is, that there is a conflict when read/write operation is made and these operations overlap at a certain point. But how do I find out when and how to avoid it ? I haven't had the feeling that something was happening at the exact same time, when observing the command promt.

    


    Command prompt
The screenshot was taken right at failing. As you can see, the concat file queue1.webm is already more than 10 seconds longer than the realtime encoding at its failing position. That's why I don't think it has to do with catching up too fast. It will fail randomly, so one time it fails at 25 seconds and next time it might fail at 2 minutes and 20 seconds.

    


    To avoid the possibility of different video settings causing troubble, I'm using only one video file. I will link it here : BigBuckBunny (Mega NZ) It's a 10 sec snippet from BigBuckBunny. I hope this is legal !? But you can use what ever clip you want.

    


    IMPORTANT : If you try to reproduce the behaviour, please make sure you make at least one entry,
    like file 'bigbuckbunny_webm.webm' in mylist.txt, because adding something if the file is empty is kinda broken :)

    


    So here is the code :

    


    Just the FFMPEG commands :

    


    ffmpeg -f concat -i "mylist.txt" -safe 0  -c copy -f webm -reset_timestamps 1 -streaming 1 -live 1 -y queue1.webm
[..]
ffmpeg -re -i queue1.webm -c copy -map 0:v -use_timeline 1 -use_template 1 -remove_at_exit 0 -window_size 10 -adaptation_sets "id=0,streams=v" -streaming 1 -live 1 -f dash -y queue.mpd


    


    makedir.bat

    


    @ECHO on

:: Create new queue
IF NOT EXIST "queue1.webm" mkfifo "queue1.webm"

setlocal EnableDelayedExpansion

set string=file 'bigbuckbunny_webm.webm'
set video_path=""
SET /a c=0
set file=-1
set file_before=""

:loop
::Get last entry from "mylist.txt"
for /f "delims=" %%a in ('type mylist.txt ^| findstr /b /c:"file"') do (
  set video_path=%%a
)
echo %video_path%

::Insert file 'bigbuckbunny_webm.webm' if mylist.txt is empty.
if "%video_path%" EQU """" (echo %string% >> mylist.txt && set file=%string:~6,-1%) else (set file=%video_path:~6,-1%)

::Insert file 'bigbuckbunny_webm.webm' into mylit.txt if actual entry(%file%) is the same than before(file 'bigbuckbunny_webm.webm').
if "%file%" EQU "%file_before%" (echo. >> mylist.txt && echo %string%>>mylist.txt) 

echo %file%

::Get the video duration
for /f "tokens=1* delims=:" %%a in ('ffmpeg -i %file% 2^>^&1 ^| findstr "Duration"') do (set duration=%%b)
echo %duration%

::Crop format to HH:MM:SS
set duration=%duration:~1,11%
echo %duration%

::Check if seconds are double digits, less than 10, like 09. Then use only 9.
if %duration:~6,1% EQU 0 (
  set /a sec=%duration:~7,1% 
    ) else ( 
        set /a sec=%duration:~6,2%

)
echo %sec%

::Convert duration into seconds
set /a duration=%duration:~0,2%*3600+%duration:~3,2%*60+%sec%
echo %duration%

::echo %duration%

::Increase iteration count.
set /a c=c+1

::Add new clip to queue.
ffmpeg -f concat -i "mylist.txt" -safe 0  -c copy -f webm -reset_timestamps 1 -streaming 1 -live 1 -y queue1.webm

::Start realtime encoding queue1, if a first clip was added.
if !c! EQU 1 (
  start cmd /k "startRealtimeEncoding.bat"
)

::Wait the duration of the inserted video 
timeout /t %duration%

::Set the actual filename as the previous file for the next iteration.
set file_before=%file%

::Stop after c loops.
if !c! NEQ 20 goto loop

echo %c%

endlocal

:end  


    


    startRealtimeEncoding.bat

    


    @ECHO off

timeout /t 5
ffmpeg -re -i queue1.webm -c copy -map 0:v -seg_duration 2 -keyint_min 48 -use_timeline 1 -use_template 1 -remove_at_exit 0 -window_size 10 -adaptation_sets "id=0,streams=v" -streaming 1 -live 1 -f dash -y queue.mpd

:end


    


  • French CNIL recommends Piwik : the only analytics tool that does not require Cookie Consent

    29 octobre 2014, par Matthieu Aubry — Press Releases

    There has been recent and important changes in France regarding data privacy and the use of cookies. This blog post will introduce you to these changes and explain how you make your website compliant.

    Cookie Consent in the data freedom law

    Since the adoption of the EU Directive 2009/136/EC “Telecom Package”, Internet users must be informed and provide their prior consent to the storage of cookies on their computer. The use of cookies for advertising, analytics and social share buttons require the user’s consent :

    It is necessary to inform users of the presence, purpose and duration of the cookies placed in their browsers, and the means at their disposal to oppose it.

    What is a cookie ?

    Cookies are tracers placed on Internet users’ hard drives by the web hosts of the visited website. They allow the website to identify a single user across multiple visits with a unique identifier. Cookies may be used for various purposes : building up a shopping cart, storing a website’s language settings, or targeting advertising by monitoring the user’s web-browsing.

    Which cookies are exempt from the Cookie Consent rule ?

    France has exempted certain cookies from the cookie consent rule : for those cookies that are strictly necessary to offer the service sought after by the user you do not need to ask consent to user. Examples of such cookies are :

    • the shopping cart cookie,
    • authentication cookies,
    • short lived session cookies,
    • load balancer cookies,
    • certain first party analytics (such as Piwik cookies),
    • persistent cookies for interface personalisation.

    Asking users for consent for Analytics (tracking) Cookies

    For all cookies that are not exempted from the Cookie Consent then you will need to :

    • obtain consent from web users before placing or reading cookies and similar technologies,
    • clearly inform web users of the different purposes for which the cookies and similar technologies will be used,
    • propose a real choice to web users between accepting or refusing cookies and similar technologies.

    You don’t need Cookie Consent with Piwik

    The excellent news is that there is a way to bypass the Cookie Consent banner on your website :

    If you are using another analytics solution other than Piwik then you will need to ask users for consent. If you do not want to ask for consent then download and install Piwik or signup to Piwik Cloud to get started.

    If you are already using Piwik you need to do two simple things : (1) anonymise visitor IP addresses (at least two bytes) and (2) include the opt-out iframe solution in your website (learn more).

    Note that these recommendations currently only apply in France, but because the law is European we can expect similar findings in other European countries.

    CNIL recommends Piwik

    We are proud that the CNIL has identified Piwik as the only tool that respects all privacy requirements set by the European Telecom law.

    About the CNIL

    The CNIL is an independent administrative body that operates in accordance with the French data protection legislation. The CNIL has been entrusted with the general duty to inform people of the rights that the data protection legislation allows them.

    The role and responsabilities of the CNIL are :

    • to protect citizens and their data
    • to regulate and control processing of personal data
    • to inspect the security of data processing systems and applications, and impose penalties

    Piwik and Privacy

    At Piwik we love Privacy – our open analytics platform comes with built-in Privacy.

    Future of Privacy at Piwik

    Piwik is already the leader when it comes to respecting user privacy but we plan to continue improving privacy within the open analytics platform. For more information and specific ideas see Privacy enhancing issues in our issue tracker.

    References

    Learn more in these articles in French [fr] or English :

    Contact

    To learn more about Piwik, please visit piwik.org,

    Get in touch with the Piwik team : Contact information,

    For professional support contact Piwik PRO.