Recherche avancée

Médias (91)

Autres articles (58)

  • Gestion des droits de création et d’édition des objets

    8 février 2011, par

    Par défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;

  • Keeping control of your media in your hands

    13 avril 2011, par

    The vocabulary used on this site and around MediaSPIP in general, aims to avoid reference to Web 2.0 and the companies that profit from media-sharing.
    While using MediaSPIP, you are invited to avoid using words like "Brand", "Cloud" and "Market".
    MediaSPIP is designed to facilitate the sharing of creative media online, while allowing authors to retain complete control of their work.
    MediaSPIP aims to be accessible to as many people as possible and development is based on expanding the (...)

  • Dépôt de média et thèmes par FTP

    31 mai 2013, par

    L’outil MédiaSPIP traite aussi les média transférés par la voie FTP. Si vous préférez déposer par cette voie, récupérez les identifiants d’accès vers votre site MédiaSPIP et utilisez votre client FTP favori.
    Vous trouverez dès le départ les dossiers suivants dans votre espace FTP : config/ : dossier de configuration du site IMG/ : dossier des média déjà traités et en ligne sur le site local/ : répertoire cache du site web themes/ : les thèmes ou les feuilles de style personnalisées tmp/ : dossier de travail (...)

Sur d’autres sites (9826)

  • How to re-encode an audio to match another one, to avoid re-encoding the whole audio

    21 mars 2024, par Bernard Wiesner

    I have an audio editor in the browser using ffmpeg (WebAssembly), and I want to insert new audio into the existing audio without having to re-encode everything. Re-encoding everything takes a long time, especially in the browser, so I would like to only re-encode the inserted file, match it to the original one and concatenate them using the copy command.

    


    On ffmpeg concatenate docs it says :

    


    


    All files must have the same streams (same codecs, same time base, etc.)

    


    


    But it is not clear what is meant by time base. So far I have observed I need to match :

    


      

    • codec
    • 


    • bit rate
    • 


    • sample rate
    • 


    • channels (mono, stereo)
    • 


    


    Is there anything else I need to match so that the resulting audio is not corrupt/broken when concatenating ?

    


    I have observed with mp3 for example it has VBR, CBR, and ABR. If the original audio has a bit rate of 128 kb/s, I am assuming it is a CBR, so I match it with :

    


    ffmpeg -i original.mp3
# > Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 128 kb/s

ffmpeg -i input.mp3 -b:a 128k -ar 44100 -ac 2 re_encoded.mp3

# then merge
# concat_list.txt contains the original audio and the re_encoded.mp3

ffmpeg -f concat -i concat_list.txt -safe 0 -c copy merged.mp3


    


    And that works fine for CBR such as 8, 16, 24, 32, 40, 48, 64, 80, 96, 112, 128, 160, 192, 224, 256, or 320 (docs), as far as I have tested.

    


    The issue is when the original.mp3 has a VBR (variable bit rate) or ABR, such as 150 kb/s.

    


    If I try to match it like below :

    


    ffmpeg -i input.mp3 -b:a 150k -ar 44100 -ac 2 re_encoded.mp3
ffmpeg -i re_encoded.mp3
# Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 160 kb/s


    


    The resulting bitrate is rounded to the nearest CBR which is 160.

    


    I can solve this with mp3 by using -abr 1 :

    


    ffmpeg -i input.mp3 -abr 1 -b:a 150k -ar 44100 -ac 2 re_encoded.mp3
ffmpeg -i re_encoded.mp3
# Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 150 kb/s


    


    Now the bitrate matches the original audio, however I am not sure this is correct since I am modifying the new audio to an ABR and concatenating it with a VBR ? I am not even sure how to check with ffmpeg if the audio is VBR, CBR or ABR, or if that even matters when concatenating.

    


    Another issue also happens with aac files. When I try to match the original audio bitrate I can't.

    


    ffmpeg -i input.mp3 -b:a 128k -ar 44100 -ac 2 re_encoded.aac
ffmpeg -i re_encoded.aac
# Stream #0:0: Audio: aac (LC), 44100 Hz, stereo, fltp, 135 kb/s


    


    The resulting bitrate always seems to be variable (135 in this case), and hence I can't match it to the original one.

    


    So my question is, what conditions need to be met when concatenating audios with different streams, and how can I achieve re-encoding only one audio to match the other one. Or if there is some package that can do this, it would be of great help.

    


  • ffv1 : Drop unnecessary casts and const qualifiers to match function signatures

    18 décembre 2014, par Diego Biurrun
    ffv1 : Drop unnecessary casts and const qualifiers to match function signatures
    

    libavcodec/ffv1dec.c:898:36 : warning : cast discards ‘const’ qualifier from pointer target type

    • [DBH] libavcodec/ffv1dec.c
  • How to transcode HLS video (with .m3u8 subtitle file) for MPEG-DASH stream using FFMPEG ?

    15 mai 2017, par Toan Tran

    I’m trying to use ffmpeg to transcode a HLS video.m3u8, which uses a .m3u8 subtitle file, for MPEG-DASH streaming. The subtitle file has been defined in the master manifest video.m3u8 but I receive only the video and audio, the subtitle doesn’t come along. What am I doing wrong ? Your help is very much appreciated.

    This is the command I used :

    ffmpeg -i http://myserver_ip/video.m3u8 -vcodec libx264 -vprofile baseline -acodec libmp3lame -ar 44100 -ac 1 -f flv rtmp://myserver_ip/dash/SampleVideo

    This is my video.m3u8 master manifest file :

    #EXTM3U
    #EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subtitle",NAME="#1 Fre",DEFAULT=NO,FORCED=NO,LANGUAGE="fre",URI="planete_interdite_subtitle3_fre_vtt.m3u8"
    #EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subtitle",NAME="#2 Eng",DEFAULT=NO,FORCED=NO,LANGUAGE="eng",URI="planete_interdite_subtitle4_eng_vtt.m3u8"
    #EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subtitle",NAME="#3 Eng",DEFAULT=NO,FORCED=NO,LANGUAGE="eng",URI="planete_interdite_subtitle5_eng_vtt.m3u8"
    #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="low",NAME="#1 Fre",DEFAULT=YES,AUTOSELECT=YES,LANGUAGE="fre",URI="planete_interdite_228_h264_144p_audio1_fre.m3u8"
    #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="low",NAME="#2 Eng",DEFAULT=NO,AUTOSELECT=YES,LANGUAGE="eng",URI="planete_interdite_228_h264_144p_audio2_eng.m3u8"
    #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="medium",NAME="#1 Fre",DEFAULT=YES,AUTOSELECT=YES,LANGUAGE="fre",URI="planete_interdite_500_h264_240p_audio1_fre.m3u8"
    #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="medium",NAME="#2 Eng",DEFAULT=NO,AUTOSELECT=YES,LANGUAGE="eng",URI="planete_interdite_500_h264_240p_audio2_eng.m3u8"
    #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="high",NAME="#1 Fre",DEFAULT=YES,AUTOSELECT=YES,LANGUAGE="fre",URI="planete_interdite_1228_q264_360p_audio1_fre.m3u8"
    #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="high",NAME="#2 Eng",DEFAULT=NO,AUTOSELECT=YES,LANGUAGE="eng",URI="planete_interdite_1228_q264_360p_audio2_eng.m3u8"
    #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="veryhigh",NAME="#1 Fre",DEFAULT=YES,AUTOSELECT=YES,LANGUAGE="fre",URI="planete_interdite_2080_q264_480p_audio1_fre.m3u8"
    #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="veryhigh",NAME="#2 Eng",DEFAULT=NO,AUTOSELECT=YES,LANGUAGE="eng",URI="planete_interdite_2080_q264_480p_audio2_eng.m3u8"
    #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="hdready",NAME="#1 Fre",DEFAULT=YES,AUTOSELECT=YES,LANGUAGE="fre",URI="planete_interdite_4160_n264_720p_audio1_fre.m3u8"
    #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="hdready",NAME="#2 Eng",DEFAULT=NO,AUTOSELECT=YES,LANGUAGE="eng",URI="planete_interdite_4160_n264_720p_audio2_eng.m3u8"
    #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="fullhd",NAME="#1 Fre",DEFAULT=YES,AUTOSELECT=YES,LANGUAGE="fre",URI="planete_interdite_8256_n264_1080p_audio1_fre.m3u8"
    #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="fullhd",NAME="#2 Eng",DEFAULT=NO,AUTOSELECT=YES,LANGUAGE="eng",URI="planete_interdite_8256_n264_1080p_audio2_eng.m3u8"
    #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=314000,CODECS="avc1.66.30,mp4a.40.2",RESOLUTION=256x144,AUDIO="low",SUBTITLES="subtitle"
    planete_interdite_228_h264_144p.m3u8
    #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=638000,CODECS="avc1.66.30,mp4a.40.2",RESOLUTION=426x240,AUDIO="medium",SUBTITLES="subtitle"
    planete_interdite_500_h264_240p.m3u8
    #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1942000,CODECS="avc1.66.30,mp4a.40.2",RESOLUTION=640x360,AUDIO="high",SUBTITLES="subtitle"
    planete_interdite_1228_q264_360p.m3u8
    #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=3274000,CODECS="avc1.66.30,mp4a.40.2",RESOLUTION=854x480,AUDIO="veryhigh",SUBTITLES="subtitle"
    planete_interdite_2080_q264_480p.m3u8
    #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=4814000,CODECS="avc1.4d001f,mp4a.40.2",RESOLUTION=1280x720,AUDIO="hdready",SUBTITLES="subtitle"
    planete_interdite_4160_n264_720p.m3u8
    #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=9501000,CODECS="avc1.640028,mp4a.40.2",RESOLUTION=1920x1080,AUDIO="fullhd",SUBTITLES="subtitle"
    planete_interdite_8256_n264_1080p.m3u8

    My .m3u8 subtitle file, which contains many .vtt subtitle files :

    #EXTM3U
    #EXT-X-VERSION:3
    #EXT-X-TARGETDURATION:5
    #EXT-X-MEDIA-SEQUENCE:1
    #EXTINF:4.004000,
    planete_interdite_subtitle5_eng1.vtt
    #EXTINF:4.004000,
    planete_interdite_subtitle5_eng2.vtt
    #EXTINF:4.004000,
    planete_interdite_subtitle5_eng3.vtt
    #EXTINF:4.004000,
    planete_interdite_subtitle5_eng4.vtt
    #EXTINF:4.004000,
    planete_interdite_subtitle5_eng5.vtt
    #EXTINF:4.004000,
    planete_interdite_subtitle5_eng6.vtt
    #EXTINF:4.004000,
    planete_interdite_subtitle5_eng7.vtt
    #EXTINF:4.004000,
    planete_interdite_subtitle5_eng8.vtt
    #EXTINF:4.004000,
    planete_interdite_subtitle5_eng9.vtt