Recherche avancée

Médias (3)

Mot : - Tags -/spip

Autres articles (99)

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

  • Emballe médias : à quoi cela sert ?

    4 février 2011, par

    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" ;

  • Configuration spécifique pour PHP5

    4 février 2011, par

    PHP5 est obligatoire, vous pouvez l’installer en suivant ce tutoriel spécifique.
    Il est recommandé dans un premier temps de désactiver le safe_mode, cependant, s’il est correctement configuré et que les binaires nécessaires sont accessibles, MediaSPIP devrait fonctionner correctement avec le safe_mode activé.
    Modules spécifiques
    Il est nécessaire d’installer certains modules PHP spécifiques, via le gestionnaire de paquet de votre distribution ou manuellement : php5-mysql pour la connectivité avec la (...)

Sur d’autres sites (12825)

  • PHP FFMPEG match the Instagram Video Requirements

    19 février 2021, par Linesofcode

    This are the Instagram requirements in order to upload a video :

    


    - Container: MOV or MP4 (MPEG-4 Part 14), no edit lists, moov atom at the front of the file.
- Audio codec: AAC, 48khz sample rate maximum, 1 or 2 channels (mono or stereo).
- Video codec: HEVC or H264, progressive scan, closed GOP, 4:2:0 chroma subsampling.
- Frame rate: 23-60 FPS.
- Picture size:
  - Maximum columns (horizontal pixels): 1920
  - Minimum aspect ratio [cols / rows]: 4 / 5
  - Maximum aspect ratio [cols / rows]: 16 / 9
  - Video bitrate: VBR, 5Mbps maximum
- Audio bitrate: 128kbps
- Duration: 60 seconds maximum, 3 seconds minimum
- File size: 100MB maximum


    


    I'm using the https://github.com/PHP-FFMpeg/PHP-FFMpeg library and I'm able to get the metadata of the video this way :

    


    $ffprobe = \FFMpeg\FFProbe::create();
$video = $ffprobe->streams('my_sample_video.mp4')->videos()->first();
$audio = $ffprobe->streams('my_sample_video.mp4')->audios()->first();


    


    Printing $video & $audio returns respectively the following data :

    


    --- video ---
[index] => 0
[codec_name] => h264
[codec_long_name] => H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
[profile] => Baseline
[codec_type] => video
[codec_time_base] => 1/1200
[codec_tag_string] => avc1
[codec_tag] => 0x31637661
[width] => 848
[height] => 480
[coded_width] => 848
[coded_height] => 480
[has_b_frames] => 0
[sample_aspect_ratio] => 0:1
[display_aspect_ratio] => 0:1
[pix_fmt] => yuv420p
[level] => 31
[color_range] => tv
[color_space] => bt709
[color_transfer] => bt709
[color_primaries] => bt709
[chroma_location] => left
[refs] => 1
[is_avc] => 1
[nal_length_size] => 4
[r_frame_rate] => 25/1
[avg_frame_rate] => 25/1
[time_base] => 1/600
[start_pts] => 0
[start_time] => 0.000000
[duration_ts] => 57888
[duration] => 96.480000
[bit_rate] => 1436391
[bits_per_raw_sample] => 8
[nb_frames] => 2412

--- audio ---
[index] => 1
[codec_name] => aac
[codec_long_name] => AAC (Advanced Audio Coding)
[profile] => LC
[codec_type] => audio
[codec_time_base] => 1/44100
[codec_tag_string] => mp4a
[codec_tag] => 0x6134706d
[sample_fmt] => fltp
[sample_rate] => 44100
[channels] => 2
[channel_layout] => stereo
[bits_per_sample] => 0
[r_frame_rate] => 0/0
[avg_frame_rate] => 0/0
[time_base] => 1/44100
[start_pts] => 0
[start_time] => 0.000000
[duration_ts] => 4255744
[duration] => 96.502132
[bit_rate] => 62026
[max_bit_rate] => 64000
[nb_frames] => 4156


    


    Some things are easy to verify like the Video Codec, Audio Codec & Duration, but how to I manage to verify the rest ?

    


    I also noticed that all the MP4 & MOV video samples I use, the metadata of codec_long_name always returns "MPEG-4 part 10" and the requirement is "MPEG-4 Part 14".

    


  • Compress video from Android before upload to server

    26 juillet 2016, par Rahul Patel

    I am working with compress video using FFmpeg library.

    selectedImagePath = getPath(selectedImage); // this is video path from gallery
    File dir = new File(Environment.getExternalStorageDirectory().getPath(), "MyAPP" + "/" + "Video");
                       if (!dir.exists()) {
                           dir.mkdirs();
                       }

    long time = System.currentTimeMillis();
    String ffmpegCode = "ffmpeg -y -i " + selectedImagePath + " -strict experimental -s 480x320 -r 25 -vcodec mpeg4 -b 900k -ab 48000 -ac 2 -ar 22050 " + dir + "/" + time + "out.mp4";

    using this code I can compress video, but if there is space between selected image path then this is not working.

    I found the below solution from this LINK.

    // Use this format to support files that contains spaces and special characters
    String[] complexCommand = {"ffmpeg","-y" ,"-i", selectedImagePath,"-strict","experimental","-s", "480x320","-r","25", "-vcodec", "mpeg4", "-b", "900k", "-ab","48000", "-ac", "2", "-ar", "22050", dir + "/" + time + "out.mp4"};

    Runtime.getRuntime().exec("chmod 744 "+dir + "/");

    Process p = Runtime.getRuntime().exec(complexCommand);

    and Logcat :

    07-26 18:59:24.609 29512-29535/com.examples.ffmpeg4android_demo I/OpenGLRenderer: Initialized EGL, version 1.4
    07-26 18:59:24.616 29512-30045/com.examples.ffmpeg4android_demo W/System.err: java.io.IOException: Error running exec(). Command: [ffmpeg, -y, -i, /storage/emulated/0/WhatsApp/Media/WhatsApp Video/VID-20160726-WA0001.mp4, -strict, experimental, -s, 480x320, -r, 25, -vcodec, mpeg4, -b, 900k, -ab, 48000, -ac, 2, -ar, 22050, /storage/emulated/0/MyAPP/Video/1469539764559out.mp4] Working Directory: null Environment: null
    07-26 18:59:24.622 29512-30045/com.examples.ffmpeg4android_demo W/System.err:     at java.lang.ProcessManager.exec(ProcessManager.java:211)
    07-26 18:59:24.622 29512-30045/com.examples.ffmpeg4android_demo W/System.err:     at java.lang.Runtime.exec(Runtime.java:174)
    07-26 18:59:24.623 29512-30045/com.examples.ffmpeg4android_demo W/System.err:     at java.lang.Runtime.exec(Runtime.java:129)
    07-26 18:59:24.623 29512-30045/com.examples.ffmpeg4android_demo W/System.err:     at com.examples.ffmpeg4android.SimpleExample$TranscdingBackground1.doInBackground(SimpleExample.java:577)
    07-26 18:59:24.623 29512-30045/com.examples.ffmpeg4android_demo W/System.err:     at com.examples.ffmpeg4android.SimpleExample$TranscdingBackground1.doInBackground(SimpleExample.java:531)
    07-26 18:59:24.623 29512-30045/com.examples.ffmpeg4android_demo W/System.err:     at android.os.AsyncTask$2.call(AsyncTask.java:295)
    07-26 18:59:24.623 29512-30045/com.examples.ffmpeg4android_demo W/System.err:     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    07-26 18:59:24.623 29512-30045/com.examples.ffmpeg4android_demo W/System.err:     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
    07-26 18:59:24.623 29512-30045/com.examples.ffmpeg4android_demo W/System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
    07-26 18:59:24.623 29512-30045/com.examples.ffmpeg4android_demo W/System.err:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
    07-26 18:59:24.623 29512-30045/com.examples.ffmpeg4android_demo W/System.err:     at java.lang.Thread.run(Thread.java:818)
    07-26 18:59:24.623 29512-30045/com.examples.ffmpeg4android_demo W/System.err: Caused by: java.io.IOException: Permission denied
    07-26 18:59:24.624 29512-30045/com.examples.ffmpeg4android_demo W/System.err:     at java.lang.ProcessManager.exec(Native Method)
    07-26 18:59:24.624 29512-30045/com.examples.ffmpeg4android_demo W/System.err:     at java.lang.ProcessManager.exec(ProcessManager.java:209)
    07-26 18:59:24.624 29512-30045/com.examples.ffmpeg4android_demo W/System.err:   ... 10 more

    I already given permission android.permission.WRITE_EXTERNAL_STORAGE

    how can I compress video before upload to server like whatsapp and facebook ? Is there any other solution ?

    Please guide me.

  • FFmpeg stream extraction modifies subtitles [closed]

    21 mai 2024, par user18812922

    I have a video with the following ffprobe output :

    


    Input #0, matroska,webm, from 'video.mkv':
  Metadata:
    title           : Video - 01
    creation_time   : 2021-07-14T02:49:59.000000Z
    ENCODER         : Lavf58.29.100
  Duration: 00:22:57.28, start: 0.000000, bitrate: 392 kb/s
  Chapters:
    Chapter #0:0: start 0.000000, end 86.169000
      Metadata:
        title           : Opening
    Chapter #0:1: start 86.169000, end 641.266000
      Metadata:
        title           : Part A
    Chapter #0:2: start 641.266000, end 651.359000
      Metadata:
        title           : Eyecatch
    Chapter #0:3: start 651.359000, end 1286.160000
      Metadata:
        title           : Part B
    Chapter #0:4: start 1286.160000, end 1356.355000
      Metadata:
        title           : Ending
    Chapter #0:5: start 1356.355000, end 1376.876000
      Metadata:
        title           : Preview
  Stream #0:0: Video: hevc (Main 10), yuv420p10le(tv, bt709), 854x480 [SAR 1280:1281 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn (default)
      Metadata:
        DURATION        : 00:22:56.959000000
  Stream #0:1(eng): Audio: vorbis, 48000 Hz, stereo, fltp (default)
      Metadata:
        title           : English [FLAC 2.0]
        DURATION        : 00:22:57.278000000
  Stream #0:2(jpn): Audio: vorbis, 48000 Hz, stereo, fltp
      Metadata:
        title           : Japanese [FLAC 2.0]
        DURATION        : 00:22:57.276000000
  Stream #0:3(eng): Subtitle: ass (ssa)
      Metadata:
        title           : Signs and Songs [FMA1394/Redc4t]
        DURATION        : 00:22:51.090000000
  Stream #0:4(eng): Subtitle: ass (ssa)
      Metadata:
        title           : English [FMA1394/Redc4t]
        DURATION        : 00:22:51.090000000
  Stream #0:5(eng): Subtitle: hdmv_pgs_subtitle (pgssub), 1920x1080
      Metadata:
        title           : Full English Retail
        DURATION        : 00:22:51.120000000
  Stream #0:6: Attachment: ttf
      Metadata:
        filename        : 8bitoperator.ttf
        mimetype        : application/x-truetype-font
  Stream #0:7: Attachment: ttf
      Metadata:
        filename        : Cabin-Bold.ttf
        mimetype        : application/x-truetype-font
  Stream #0:8: Attachment: ttf
      Metadata:
        filename        : calibrib.ttf
        mimetype        : application/x-truetype-font
  Stream #0:9: Attachment: ttf
      Metadata:
        filename        : daniel_0.ttf
        mimetype        : application/x-truetype-font
  Stream #0:10: Attachment: ttf
      Metadata:
        filename        : DEATH_FONT.TTF
        mimetype        : application/x-truetype-font
  Stream #0:11: Attachment: ttf
      Metadata:
        filename        : Dominican.ttf
        mimetype        : application/x-truetype-font
  Stream #0:12: Attachment: ttf
      Metadata:
        filename        : gishabd.ttf
        mimetype        : application/x-truetype-font
  Stream #0:13: Attachment: ttf
      Metadata:
        filename        : PATRICK_0.TTF
        mimetype        : application/x-truetype-font
  Stream #0:14: Attachment: ttf
      Metadata:
        filename        : Qlassik-Medium.ttf
        mimetype        : application/x-truetype-font
Unsupported codec with id 98304 for input stream 6
Unsupported codec with id 98304 for input stream 7
Unsupported codec with id 98304 for input stream 8
Unsupported codec with id 98304 for input stream 9
Unsupported codec with id 98304 for input stream 10
Unsupported codec with id 98304 for input stream 11
Unsupported codec with id 98304 for input stream 12
Unsupported codec with id 98304 for input stream 13
Unsupported codec with id 98304 for input stream 14


    


    I am trying to extract the subtitles, edit them and reattach them to the video.
(I need my program to do that so I don't want to use other software)

    


    Command 1

    


    ffmpeg -i video.mkv -map 0:3 -c:s ssa subs.ass
ffmpeg -i video.mkv -i subs.ass -map 0 -map -0:s -map 1 -c copy out.mkv


    


    Command 2

    


    ffmpeg -i video.mkv -map 0:3 subs.ass
ffmpeg -i video.mkv -i subs.ass -map 0 -map -0:s -map 1 -c copy out.mkv


    


    Command 3

    


    ffmpeg -i video.mkv -map 0:3 subs.srt
ffmpeg -i video.mkv -i subs.srt -map 0 -map -0:s -map 1 -c copy out.mkv


    


    Command 4

    


    ffmpeg -i video.mkv -map 0:3 subs.srt
ffmpeg -i subs.srt subs.ass
ffmpeg -i video.mkv -i subs.ass -map 0 -map -0:s -map 1 -c copy out.mkv


    


    Command 5

    


    ffmpeg -i video.mkv -map 0:3 subs.ass
ffmpeg -i subs.ass subs.srt
ffmpeg -i video.mkv -i subs.srt -map 0 -map -0:s -map 1 -c copy out.mkv


    


    The problem

    


    After extraction the subtitles seem to be really quick, meaning they are displayed and disappear really quickly.

    


    For example the first subtitle is as follows in srt :

    


    1&#xA;00:00:03,100 --> 00:00:03,560&#xA;<font face="Dominican" size="77" color="#f7f7f7">Within the spreading darkness</font>&#xA;

    &#xA;

    Now, in srt it also has wrong size but I assume that's because of the conversion from ass to srt.

    &#xA;

    If I reattach the subtitle file in the video and open it, it is displayed and disappears way too fast and it doesn't match the original subtitles in the video.

    &#xA;

    (ie, the original video subtitles are showing for at least a second)

    &#xA;

    Expected behaviour

    &#xA;

    The subtitles should be displayed for the same duration as the original subtitles.

    &#xA;

    NOTE

    &#xA;

    It's my first question for ffmpeg related issues so feel free to ask me for anything else you may need.

    &#xA;

    UPDATE 1

    &#xA;

    I realized that the subtitles were ok for the timings as they had the same line multiple times, so the problem for not playing is something else.

    &#xA;

    Example of the file

    &#xA;

    1&#xA;00:00:03,100 --> 00:00:03,560&#xA;<font face="Dominican" size="77" color="#f7f7f7">Within the spreading darkness</font>&#xA;&#xA;2&#xA;00:00:03,560 --> 00:00:04,650&#xA;<font face="Dominican" size="77" color="#f7f7f7">Within the spreading darkness</font>&#xA;&#xA;3&#xA;00:00:04,650 --> 00:00:05,100&#xA;<font face="Dominican" size="77" color="#f7f7f7">Within the spreading darkness</font>&#xA;

    &#xA;

    So the problem is that VLC doesn't show more than the first subtitle.

    &#xA;

    The strange thing is when I use the below command

    &#xA;

    ffmpeg -i video.mkv -i subs.srt -map 0 -map -0:s -map 1 -c copy -c:s subrip out.mkv&#xA;

    &#xA;

    Then more lines of the subtitle (but not all) play.

    &#xA;

    It stops at the 17th line.

    &#xA;

    I believe that's an encoder's problem ? but I really don't know.

    &#xA;

    Also what I noticed is that VLC stops the subtitles but Windows Media Player (Windows 11 version) display the subtitles correctly even after the 17th line.

    &#xA;

    BUT, if I add subtitles from another video they are played correctly in both VLC and Windows Media Player.

    &#xA;

    Update 2&#xA;As @Gyan said in his answer I should use the following command

    &#xA;

    ffmpeg -i video.mkv -map 0:3 -c:s copy subs.ass&#xA;

    &#xA;

    But then if I attach the subs again with

    &#xA;

    ffmpeg -i video.mkv -i subs.ass -map 0 -map -0:s -map 1 -c copy -c:s ass out.mkv&#xA;

    &#xA;

    The subtitles show up to 17th line in both VLC and Windows Media Player.

    &#xA;

    or

    &#xA;

    ffmpeg -i video.mkv -i .\subs.ass -map 0 -map -0:s -map 1 -c copy out.mkv&#xA;

    &#xA;

    The subtitles do not show up at all. (Not even in Windows Media Player)

    &#xA;