Recherche avancée

Médias (1)

Mot : - Tags -/Christian Nold

Autres articles (100)

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

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

  • Participer à sa traduction

    10 avril 2011

    Vous pouvez nous aider à améliorer les locutions utilisées dans le logiciel ou à traduire celui-ci dans n’importe qu’elle nouvelle langue permettant sa diffusion à de nouvelles communautés linguistiques.
    Pour ce faire, on utilise l’interface de traduction de SPIP où l’ensemble des modules de langue de MediaSPIP sont à disposition. ll vous suffit de vous inscrire sur la liste de discussion des traducteurs pour demander plus d’informations.
    Actuellement MediaSPIP n’est disponible qu’en français et (...)

Sur d’autres sites (12160)

  • Ream-time watermarking with MPEG-DASH

    14 juillet 2016, par Calvin W.

    In the system, I want to add a unique watermark (e.g. IP address of client and time stamp) into the video that he/she want to watch.

    But when I handled it with OpenCV, it spent 25 minute with a 15-min video. And I need to transcode to mp4 with ffmpeg.

    Now I’m trying the watermark function of ffmpeg, bit it still needs some time.

    It it possible to send the video to client side with MPEG-DASH while transcoding it with ffmpeg ?

    System spec :(Amazon EC2 c3.xlarge)
    Intel Xeon E5-2680 v2 (Ivy Bridge) - 4 vCPU
    7.5G RAM
    40GB SSD
    Ubuntu 14.04 LTS
    OpenCV2.4.13
    ffmpeg 3.1.1

    code :

    import cv2
    import sys
    import time
    from datetime import datetime as dt

    # frame of input video
    fps = float(sys.argv[4])
    # encode to AVC
    fourcc = cv2.cv.CV_FOURCC('A', 'V', 'C', '1')
    # transparency of text
    alpha = 0.1
    beta = 1 - alpha

    # input video
    cap = cv2.VideoCapture(sys.argv[3])

    # current frame index, start from 0
    frameIndex = 0

    # get input video's width/height
    width = int(cap.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH))
    height = int(cap.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT))

    # config output (error using .mp4)
    out = cv2.VideoWriter('output.avi', fourcc, fps, (width, height))

    # access time
    timeStr = dt.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')

    requestIP = sys.argv[1]
    username = sys.argv[2]
    text = "%s %s %s" % (requestIP, username, timeStr)


    # start loading video
    while(cap.isOpened()):
       ret, frame = cap.read()
       if ret:
           # add text between 10s - 20s
           if frameIndex > time10 and frameIndex < time20:
               # clone a new frame to add text
               overlay = frame.copy()
               cv2.putText(overlay, text, (100, 100), cv2.FONT_HERSHEY_PLAIN, 0.5, (255, 255, 255))
               # combine both frame and make text transparent
               cv2.addWeighted(overlay, alpha, frame, beta, 0, frame)
           # write frame to output
           out.write(frame)
           frameIndex += 1
       # wait for next frame
       if cap.get(cv2.cv.CV_CAP_PROP_POS_FRAMES) == cap.get(cv2.cv.CV_CAP_PROP_FRAME_COUNT):
           break
    # End of video
    # release
    cap.release()
    out.release()
  • FFMPEG segment live video for DASH

    23 décembre 2014, par static

    I’m trying to stream live capture of desktop to my own server, which shall create an MPD with segment template for use with dash.js player.
    Using the following command i managed to get it working

    ffmpeg -rtbufsize 6M -f x11grab -s 1366x768 -r 10 -i :0.0 -flags +global_header \
    -vcodec libvpx -deadline realtime -profile:v 0 -keyint_min 1 -g 1 -cpu-used 0 \
    -vb 1200k -qmin 10 -qmax 42 -threads 4 -bufsize 6000k -slices 4 -map 0 -an \
    -f stream_segment -segment_time 2 -segment_format webm **/streams

    The output :

    Input #0, x11grab, from ':0.0': Duration: N/A, start: 1419329032.549498, bitrate: N/A
    Stream #0:0: Video: rawvideo (BGRA / 0x41524742), bgra, 1366x768, 10 fps, 10 tbr, 1000k tbn, 10 tbc
    [libvpx@ 0x23ccf60] v1.3.0 Output #0, stream_segment, ssegment, to /streams/d':
    Metadata:
    encoder : Lavf56.15.102
    Stream #0:0: Video: vp8 (libvpx), yuva420p, 1366x768, q=10-42, 1200 kb/s, 10 fps, 1k tbn, 10 tbc
    Metadata: encoder: Lavc56.13.100 libvpx
    Stream mapping: Stream #0:0 -> #0:0 (rawvideo (native) -> vp8 (libvpx))
    Press [q] to stop, [?] for help
    [swscaler @ 0x23ac0c0] Warning: data is not aligned! This can lead to a speedloss
    frame= 2839 fps= 10 q=0.0 Lsize=N/A time=00:04:43.90 bitrate=N/A
    video:135246kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

    If I increase the number of frames to produce better quality, the latency drastically increases and the stream is not in sync with the MPD. This is caused by the fact that keyframes are created at every frame -keyint_min 1 -g 1 because otherwise and error MEDIA_ERR_SRC_NOT_SUPPORTED is thrown by the player. This is probably because a keyframe must be found at the beginning of each segment.

    Could ffmpeg be used to generate keyframes as the first frame in each segment ? I try different values for -keyint_min x -g y, for example number of frames but with no result (probably because the number of frames stabilized after a couple a seconds, so the first 2-3 segments were produced with inconsistent number of frames, so all the keyframes were introduced in wrong positions in the segments).

  • Rails 5 with Carrierwave and S3 - creating multiple video formats for DASH streaming works but mpd file breaks

    22 novembre 2019, par Milind

    what I am doing -
    i have a Rails 5 app for video streaming(DASH MPEG) that uses FFMPEG to get encoded stream videos by converting any single video into multiple videos of multiple bit rates/size and primarily also MPD FILE that can be played easily on html video player, which i have already tested by manually running the ffmpeg scripts on the console that generates all the files.However, I want to automate this process and hence carrierwave comes into the pictures.
    Here, i use carrierwave to generate different versions(size/bitrate) of videos(mp4/webm) to upload to s3 but during running the version, where all the versions are successfully created in tmp folder, only the last version(mpd) that needs to create .mpd file, carrierwave creates a mp4 video file and just replaces the extension instead of actually creating the mpd file.

    So in the aws s3(screenshot added below), i can see my all versions and mpd file , but that mpd file which must be xml file is actually a mp4 video file or uploaded version file itself.
    I have also tried to create new file during the process, but it never works.
    Has some one encountered this problem ?

    any help will be greatly appreciated ?

    Ny code snippets below - model,uploader,output of script on the console during upload, s3 screenshot

      ##### models/video.rb ##########

       mount_uploader :video, VideoUploader  

      ####### uploaders/video_uploader.rb #########

       class VideoUploader < CarrierWave::Uploader::Base


       include CarrierWave::MiniMagick
       include CarrierWave::Video
       include CarrierWave::Video::Thumbnailer
       include ::CarrierWave::Backgrounder::Delay

       ####### for streaming ..first get the audio and then convert the input video into multiple bitrates/scale #######

       ###first get audio and then get all different versions of same video
       version :video_audio do
         process :get_audio

         def get_audio
           `ffmpeg -y -i "#{file.path}" -c:a aac -ac 2 -ab 128k -vn video_audio.mp4`
         end

           def full_filename(for_file)
             "video_audio.mp4"
           end

           def filename
             "video_audio.mp4"
           end        
       end

       ####### similar to the above i have various version like ...#########

       version :video_1080 do...end
       version :video_720 do... end
       version :video_480 do ...end
       ...and so on..and all these versions are successfully created and uploaded to s3, however..in next version ...show it also creates a video file whereas i need a simple mpd file ONLY.

            ###this is where even after everything works, in S3, i can see a video file of version mpd and not actual mpd file
            version :mpd  do
              process :get_manifest
                 ###here in the command below, the video.mpd file is successfully obtained but its uploaded as video.mpd file of added/uploaded video file and not a new mpd file
                 ###tried with ffmpeg -f webm_dash_manifest -i too, but s3 still shows a mp4 file
                 `MP4Box -dash 1000 -rap -frag-rap -profile onDemand -out video.mpd video_1080.mp4 video_720.mp4 video_480.mp4 video_360.mp4 video_240.mp4 video_audio.mp4 `

              end
             end

            ######### sidekiq console output - successful mpd is generated ################
                 DASH-ing files - single segment
                 Subsegment duration 1.000 - Fragment duration: 1.000 secs
                 Splitting segments and fragments at GOP boundaries
                 DASHing file video_1080.mp4
                 DASHing file video_720.mp4                                  
                 DASHing file video_480.mp4                                  
                 DASHing file video_360.mp4                                  
                 DASHing file video_240.mp4                                  
                 DASHing file video_audio.mp4                                
                \[DASH\] Generating MPD at time 2019-11-22T00:01:59.872Z      
                 mpd_1mb.mp4
                 mpd_video.mpd

    this is what the uploaded files looks on s3, notice the video.mpd, its a mp4 video file just like others which should have been a simple mpd file of not more than 2kb.

    Is there something that I am missing ?
    Can Carrierwave do this or is it not made for this ?
    Do I have to write a callback and then programmatically upload files to s3, if carrierwave is not helping in this regard ?

    Kindly provide any suggestion or useful advice so that I can move ahead.

    aws s3 list