Recherche avancée

Médias (1)

Mot : - Tags -/stallman

Autres articles (77)

  • Librairies et logiciels spécifiques aux médias

    10 décembre 2010, par

    Pour un fonctionnement correct et optimal, plusieurs choses sont à prendre en considération.
    Il est important, après avoir installé apache2, mysql et php5, d’installer d’autres logiciels nécessaires dont les installations sont décrites dans les liens afférants. Un ensemble de librairies multimedias (x264, libtheora, libvpx) utilisées pour l’encodage et le décodage des vidéos et sons afin de supporter le plus grand nombre de fichiers possibles. Cf. : ce tutoriel ; FFMpeg avec le maximum de décodeurs et (...)

  • Organiser par catégorie

    17 mai 2013, par

    Dans MédiaSPIP, une rubrique a 2 noms : catégorie et rubrique.
    Les différents documents stockés dans MédiaSPIP peuvent être rangés dans différentes catégories. On peut créer une catégorie en cliquant sur "publier une catégorie" dans le menu publier en haut à droite ( après authentification ). Une catégorie peut être rangée dans une autre catégorie aussi ce qui fait qu’on peut construire une arborescence de catégories.
    Lors de la publication prochaine d’un document, la nouvelle catégorie créée sera proposée (...)

  • Récupération d’informations sur le site maître à l’installation d’une instance

    26 novembre 2010, par

    Utilité
    Sur le site principal, une instance de mutualisation est définie par plusieurs choses : Les données dans la table spip_mutus ; Son logo ; Son auteur principal (id_admin dans la table spip_mutus correspondant à un id_auteur de la table spip_auteurs)qui sera le seul à pouvoir créer définitivement l’instance de mutualisation ;
    Il peut donc être tout à fait judicieux de vouloir récupérer certaines de ces informations afin de compléter l’installation d’une instance pour, par exemple : récupérer le (...)

Sur d’autres sites (5946)

  • ffmpeg to generate dash and HLS - best practise

    8 septembre 2017, par 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 for me it was quite a challenge. So the way I do it is as follows :

    First I split my video (mp4) into video and audio (I encode the audio, because I need to make sure that the output codec is aac, which is a requirement for web I think).

    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 (I used the parameter —timescale 10000 but then the result was out of sync).
    Sidenote : the -g parameter is 4 times 24 (frames). this is important because the fragmentation is 4000 (4 seconds)

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

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

    And finally package everything together again for dash (I used to use —use-segment-timeline but then again the result was out-of-sync).
    I use mp4dash and not mp4box because I want to be able to encrypt everything later on for DRM.

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

    The result works in Firefox, Chrome, IE Edge via a webserver and via Cloudfront AWS Streaming also on older browsers.

    So for me there are still 2 tasks to accomplish.
    First I need to generate a HLS package for Apple Phone, IPad Users.
    And second : I need to encrypt everything.

    So far my HLS command is :

    ffmpeg -y -loglevel info ^
           -i video-2000k.mp4 \
           -i video-1500k.mp4 \
           -i audio.mp4 \
           -profile:v baseline -start_number 0 -hls_time 10 \
           -flags -global_header -hls_list_size 0 -f hls hls/master.m3u8

    This basically works, but generates only 1 bandwith without the posibility of multi-streams.
    I am not certain about that statement, but it looks that way.
    Has anyone an idea on what I am doing wrong ?

  • Decoder error not supported error when render 360 video on web application

    19 avril 2024, par Mattia Pompita

    I'm developing a simple scene with A-Frame and React.JS where there is a videosphere that will create and render when video are fully loaded and ready to play.

    


    My goal is to render 4k (to device who can reproduce it) video on videosphere to show at the users the environment.
On desktop versions all works fine also with 4K videos while on mobile works only for 1920x1080.

    


    I already check if my phone can render a 4k texture video and it can render untill 4096, I checked also that video.videoWidth are 4096.

    


    The error I have is with decoder

    


    MediaError {code: 4, message: 'DECODER_ERROR_NOT_SUPPORTED: video decoder initialization failed'}


    


    This error will show only on mobile, I can see it through Chrome Developer tools, I already try to re-encode both with Handbrake and ffmpeg but always the same error will appear on mobile.

    


    My video is hosted on Firebase and have this resolution 4096x2048
I'm testing on Google Pixel 7 already checked if WEBGL can render 4k texture on it

    


    I can't understand why decoder works fine on Desktop and not on mobile only with 4k video and with 1920x1080 it works

    


    This is the only component rendered on page

    


    import React, { useEffect, useRef } from 'react';

const XIV_360_Abbazia_San_Silvestro_4K = () => {
  const assetsRef = useRef(null);
  const videoRef = useRef(null);
  const sceneRef = useRef(null);


  return (
    
      
        > {
            console.log('CAN PLAY THROUGH');
            let videoSphere = document.createElement('a-videosphere');
            videoSphere.setAttribute('src', '#video360');
            sceneRef.current.appendChild(videoSphere);
          }}
        />
      
      

      > {
          videoRef.current.play();
        }}
      >
        PLAY
      
    
  );
};

export default XIV_360_Abbazia_San_Silvestro_4K;


    


  • Specifying FFMPEG in the requirements section of 'buildozer.spec' causing [libavformat/network.o] Error 1

    18 juillet 2022, par GJ78

    My question relates to how to mitigate an ffmpeg requirement listed in a buildozer.spec that is causing compile errors using buildozer.

    



    GOAL :

    



    Using buildozer to ensure FFMPEG can be embedded within a small Kivy app so i can utilise youtube_dl functionality on my android phone.

    



    THE ISSUE :
Specifying FFMPEG in the requirements section of 'buildozer.spec' causes the following error message :
    
common.mak:60 : recipe for target 'libavformat/network.o' failed
    
make : [libavformat/network.o] Error 1
    
make : Waiting for unfinished jobs...

    



    What have I done to resolve myself :
    
1. Ensured LOG LEVEL 2 is specified.

    



      

    1. Upgraded cython from Version 21 to 27. Then downgraded to 25, then 21 then 20 to see if this resolved anything. It didn't.

    2. 


    3. In BUILDOZER.SPEC, switched between Android NDK crystax-ndk-10.3.2 and android-ndk-r16b. (Note have reverted back to Crystax 10.3.2) in my NDK PATH.

    4. 


    5. In BUILDOZER.SPEC, changed android.api from 19 to 15 (just to see if this has any positive effects).

    6. 


    7. executed : rm -Rf .buildozer between each compiling attempt.

    8. 


    9. Part extract of Buildozer.log :

      



      In file included from libavformat/dump.c:37:0 :
      
libavformat/avformat.h:893:21 : note : declared here
      
 AVCodecContext codec ;
 ^
      
CC libavformat/format.o
      
CC libavformat/golomb_tab.o
      
CC libavformat/h264dec.o
      
CC libavformat/hevc.o
      
CC libavformat/http.o
      
CC libavformat/httpauth.o
      
CC libavformat/id3v1.o
      
CC libavformat/id3v2.o
      
CC libavformat/img2.o
      
CC libavformat/isom.o
      
CC libavformat/log2_tab.o
      
CC libavformat/m4vdec.o
      
CC libavformat/metadata.o
CC libavformat/mov_chan.o
      
CC libavformat/mov.o
      
CC libavformat/movenc.o
      
CC libavformat/movenccenc.o
      
CC libavformat/movenchint.o
      
CC libavformat/mpegvideodec.o
      
CC libavformat/mux.o
      
CC libavformat/network.o
      
In file included from libavformat/network.h:29:0,
      
 from libavformat/network.c:22 :
      
libavformat/os_support.h:67:32 : error : expected declaration specifiers or '...' before '(' token
      
 # define lseek(f,p,w) lseek64((f), (p), (w))
      
 ^
libavformat/os_support.h:67:37 : error : expected declaration specifiers or '...' before '(' token
      
 # define lseek(f,p,w) lseek64((f), (p), (w))
      
 ^
libavformat/os_support.h:67:42 : error : expected declaration specifiers or '...' before '(' token
      
 # define lseek(f,p,w) lseek64((f), (p), (w))
      
 ^
common.mak:60 : recipe for target 'libavformat/network.o' failed
      
make :
      [libavformat/network.o] Error 1
      
make : * Waiting for unfinished jobs....

    10. 


    11. Part extract of Buildozer.spec

      



      (str) Title of your application

      



      title = myapplication

      



      (str) Package name

      



      package.name = myapp

      



      (str) Package domain (needed for android/ios packaging)

      



      package.domain = org.test

      



      (str) Source code where the main.py live

      



      source.dir = .

      



      (list) Source files to include (let empty to include all the files)

      



      source.include_exts = py,png,jpg,kv,atlas

      



      (list) List of inclusions using pattern matching

      



      source.include_patterns = assets/,images/.png

      



      (list) Source files to exclude (let empty to not exclude anything)

      



      source.exclude_exts = spec

      



      (list) List of directory to exclude (let empty to not exclude anything)

      



      source.exclude_dirs = tests, bin

      



      (list) List of exclusions using pattern matching

      



      source.exclude_patterns = license,images//.jpg

      



      (str) Application versioning (method 1)

      



      version = 0.1

      



      (str) Application versioning (method 2)

      



      version.regex = version = '"['"]

      



      version.filename = %(source.dir)s/main.py

      



      (list) Application requirements

      



      comma seperated e.g. requirements = sqlite3,kivy

      



      requirements = ffmpeg,python2,hostpython2,kivy,youtube-dl

      



      (str) Custom source folders for requirements

      



      Sets custom source for any requirements with recipes

      



      requirements.source.kivy = ../../kivy

      



      (list) Garden requirements

      



      garden_requirements =

      



      (str) Presplash of the application

      



      presplash.filename = %(source.dir)s/data/presplash.png

      



      (str) Icon of the application

      



      icon.filename = %(source.dir)s/data/icon.png

      



      (str) Supported orientation (one of landscape, portrait or all)

      



      orientation = portrait

      



      (list) List of service to declare

      



      services = NAME:ENTRYPOINT_TO_PY,NAME2:ENTRYPOINT2_TO_PY

      



      OSX Specific

      



      author = © Copyright Info

      



      change the major version of python used by the app

      



      osx.python_version = 3

      



      Kivy version to use

      



      osx.kivy_version = 1.9.1

      



      Android specific

      



      (bool) Indicate if the application should be fullscreen or not

      



      fullscreen = 0

      



      (string) Presplash background color (for new android toolchain)

      



      Supported formats are : #RRGGBB #AARRGGBB or one of the following names :

      



      red, blue, green, black, white, gray, cyan, magenta, yellow, lightgray,

      



      darkgray, grey, lightgrey, darkgrey, aqua, fuchsia, lime, maroon, navy,

      



      olive, purple, silver, teal.

      



      android.presplash_color = #FFFFFF

      



      (list) Permissions

      



      android.permissions = INTERNET

      



      (int) Android API to use

      



      android.api = 19

      



      (int) Minimum API required

      



      android.minapi = 9

      



      (int) Android SDK version to use

      



      android.sdk = 20

      



      (str) Android NDK version to use

      



      android.ndk = 10.3.2

      



      (bool) Use —private data storage (True) or —dir public storage (False)

      



      android.private_storage = True

      



      (str) Android NDK directory (if empty, it will be automatically downloaded.)

      



      android.ndk_path = /home/gjones/Downloads/crystax-ndk-10.3.2

      



      (str) Android SDK directory (if empty, it will be automatically downloaded.)

      



      android.sdk_path =

      



      (str) ANT directory (if empty, it will be automatically downloaded.)

      



      android.ant_path =

    12. 


    13. Lastly, when I remove ffmpeg from requirements in buildozer.spec, the .APK compiles successfully and i can deploy it on to my phone with the KIVY GUI. Obviously, ffmpeg functionality is not present.

    14. 


    



    Current Environment Specs :

    



      

    1. Running Linux Mint 17.2 as a Virtual Box VM
    2. 


    3. Buildozer Version : 0.35dev
    4. 


    5. Cython Version : 0.25
    6. 


    



    Any advice would be greatly appreciated.

    



    Lastly, if there is no obvious solution via buildozer, do i need to compile ffmpeg for Android separately and somehow include this somewhere in the buildozer spec file to prevent this error message ?

    



    Thanks in advance.