Advanced search

Medias (2)

Tag: - Tags -/rotation

Other articles (39)

  • Encoding and processing into web-friendly formats

    13 April 2011, by

    MediaSPIP automatically converts uploaded files to internet-compatible formats.
    Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
    Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
    Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
    All uploaded files are stored online in their original format, so you can (...)

  • Emballe médias : à quoi cela sert?

    4 February 2011, by

    Ce plugin vise à gérer des sites de mise en ligne de documents de tous types.
    Il crée des "médias", à savoir : un "média" est un article au sens SPIP créé automatiquement lors du téléversement d’un document qu’il soit audio, vidéo, image ou textuel; un seul document ne peut être lié à un article dit "média";

  • Contribute to a better visual interface

    13 April 2011

    MediaSPIP is based on a system of themes and templates. Templates define the placement of information on the page, and can be adapted to a wide range of uses. Themes define the overall graphic appearance of the site.
    Anyone can submit a new graphic theme or template and make it available to the MediaSPIP community.

On other websites (7434)

  • ffmpeg to generate dash and HLS

    5 September 2017, by LaborC

    Looking for the correct way to encode a given input video in multiple bitrates and then package it for dash and HLS. I thought this is a basic task, but as it turns out, I could not find any guide on how to achieve this. So the way I do it is (but with these I get an out of sync video/audio):

    First I split my video (mp4) into video and audio.

    ffmpeg -c:v copy -an video_na.mp4 -i source_input.mp4
    ffmpeg -c:a aac -ac 2 -async 1 -vn audio.mp4 -i source_input.mp4

    Then I encode the video with the following commands:

       ffmpeg.exe -i video_na.mp4 -an -c:v libx264 -crf 18 \
    -preset fast -profile:v high -level 4.2 -b:v 2000k -minrate 2000k \
    -maxrate 2000k -bufsize 4000k -g 96 -keyint_min 96 -sc_threshold 0 \
    -filter:v "scale='trunc(oh*a/2)*2:576'" -movflags +faststart \
    -pix_fmt yuv420p -threads 4 -f mp4 video-2000k.mp4

       ffmpeg.exe -i video_na.mp4 -an -c:v libx264 -crf 18 \
    -preset fast -profile:v high -level 4.2 -b:v 1500k -minrate 1500k \
    -maxrate 1500k -bufsize 3000k -g 96 -keyint_min 96 -sc_threshold 0 \
    -filter:v "scale='trunc(oh*a/2)*2:480'" -movflags +faststart \
    -pix_fmt yuv420p -threads 4 -f mp4 video-1500k.mp4

    After that I fragment the videos.

    mp4fragment --fragment-duration 4000 --timescale 10000 video-2000k.mp4 \
    video-2000k-f.mp4

    mp4fragment --fragment-duration 4000 --timescale 10000 video-1500k.mp4 \
    video-1500k-f.mp4

    And finally package everything together again for dash.

    mp4dash --media-prefix=out  \
         --use-segment-timeline  \
         video-2000k-f.mp4  \
         video-1500k-f.mp4  \
        --out dash

    Now there is a difference between audio and video.

    I think that the problem is with my parameters for encoding. But which one I have no idea. What am I doing wrong?

  • Pipe FFMPEG MPEG-DASH livestream to AWS S3

    17 August 2019, by Alexander

    So I’m currently trying to livestream the rendering of a GPU-heavy video (renders about 1fps), encode it to a 30fps MPEG-DASH livestream and output this to AWS S3 so Shaka Player can display the live rendering.

    The first issue is that the livestream keeps looping, it doesn’t stop after the rendering for loop is done.

    I use a python script to pipe the output of the rendering to FFMPEG, and pipe the output of FFMPEG to the aws s3 cli like this:

    p1 = Popen(['ffmpeg', '-y', '-hwaccel', 'cuvid', '-f', 'image2pipe', '-r', '24', '-i', '-', '-c:v', 'h264_nvenc', '-b:v', '5M', '-f', 'dash', '-movflags', 'frag_keyframe+empty_moov', '-'], stdin=PIPE)#, shell=True) #'-method', 'PUT', 'https://example.s3.amazonaws.com/test1/test1.mpd'], stdin=PIPE)

    p2 = Popen(['aws', 's3', 'cp', '-', 's3://example/test1/test1.mpd'], stdin=p1.stdout)


    #The following commented aws s3 sync command uploads successfully to S3
    #but the issue here is that it stops after the syncing is done and its hacky
    #p1 = Popen(['ffmpeg', '-y', '-vsync', '0', '-hwaccel', 'cuvid', '-f', 'image2pipe', '-r', '24', '-i', '-', '-c:v', 'h264_nvenc', '-b:v', '5M', '-f', 'dash', '-movflags', 'frag_keyframe+empty_moov', 'test2.mpd'], stdin=PIPE)#, shell=True) #'-method', 'PUT', 'https://teststream.s3.amazonaws.com/test1/test1.mpd'], stdin=PIPE)
    #p2 = Popen(['aws', 's3', 'sync', '.', 's3://teststream/test1', '--exclude', '"*"', '--include', '"*.m4s"', '--include', '"*.mpd"'], stdin=PIPE)

    #pseudocode
    for ci,(content,contentName) in enumerate(content_loader):
       im = renderframe(content)
       im.save(p1.stdin, 'PNG')

    p1.stdin.close()
    p1.wait()
    p2.stdin.close()
    p2.wait()
  • FFMPEG H.264 encoding for HTML5 (and ultimately MPEG-DASH)

    18 June 2015, by Thane Thomson

    I want to convert an MP4 file to an MPEG-DASH video capable of being played through the DASH-IF HTML5 player on Chrome. I use FFMPEG and MP4Box (from GPAC) to transcode the video and then split it, and keep getting a MEDIA_ERR_SRC_NOT_SUPPORTED error on the JavaScript console.

    From the (very sparse) information available online (see this Chromium thread), it would appear as though Chrome natively only supports MP4 files with the Constrained Baseline encoding profile, and is very strict on only supporting the "avc1.42E01E,mp4a.40.2" codecs.

    I have tried pretty much everything I can to encode the video from the command line, prior to splitting with MP4Box, with FFMPEG to get an H.264 video encoding with codec profile "avc1.42E01E", but it just keeps giving me "avc1.42C01E". Here’s one of the (many) FFMPEG commands I’ve tried:

    ffmpeg -y -i Sintel_-_Third_Open_Movie_by_Blender_Foundation.mp4 -profile:v baseline -level:v 30 -acodec libvo_aacenc -vcodec libx264 sintel-recoded.mp4

    According to the ITU-T standard, sections 7.4.2.1.1 and A2.1-A2.3, a video encoding of "avc1.42E01E" implies constraint flags of 0xE0 (constraint_set flags 0, 1 and 2 are set), whereas "avc1.42C01E" implies constraint flags of 0xC0 (constraint_set flags 0 and 1 are set). The former (0xE0) implies conformance to the Baseline, Main and Extended profiles, whereas the latter (0xC0) implies conformance to only the Baseline and Main profiles.

    Apparently, FFMPEG doesn’t support the Extended profile for H.264.

    Does anyone perhaps have any advice as to how to encode an MP4 file as "avc1.42E01E"? Ideally with FFMPEG, but I am open to using other encoders?