Recherche avancée

Médias (1)

Mot : - Tags -/artwork

Autres articles (77)

  • MediaSPIP v0.2

    21 juin 2013, par

    MediaSPIP 0.2 est la première version de MediaSPIP stable.
    Sa date de sortie officielle est le 21 juin 2013 et est annoncée ici.
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Comme pour la version précédente, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

  • Multilang : améliorer l’interface pour les blocs multilingues

    18 février 2011, par

    Multilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
    Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela.

  • MediaSPIP version 0.1 Beta

    16 avril 2011, par

    MediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

Sur d’autres sites (7410)

  • Given 2 input videos of different lengths at 60 FPS with multiple common sections in between, what is the best way to sync them at the common section ?

    27 janvier 2024, par PirateApp

    enter image description here
input vs output

    


      

    • In my actual case, there are 4 videos (basically gaming videos recorded from 4 different machines)
    • 


    • Each video may start or end at different duration (manually controlled by people starting and stopping recording and therefore their lengths vary slightly)
    • 


    • Each video has one or more common sections (basically a cutscene playing at the same time)
    • 


    • The distance between the common sections is the same in every video
    • 


    • How do I sync the videos at the common section ?
    • 


    • Basically I want to create a split screen video such that the common part plays at the same time on all the sub parts of the video
    • 


    • Keep in mind that the common sections wont be EXACTLY equal (because of graphics differences between machines but highly similar like dx9 vs dx11 or gamma)
What have I tried ?
    • 


    • Naive approach
    • 


    • Start video 1 at 0, start video 2 at 0.017, render the whole thing and check if it is in sync
    • 


    • Start video 1 at 0, start video 2 at 0.033, render the whole thing and check if it is in sync
    • 


    • Basically loop through the length of the video at each frame interval, render the full video and check if we get a synced version
    • 


    


    This sounds like a terrible idea honestly

    


      for (t1 in length of video a) {
    for (t2 in length of video b) {
       render a video with a and b starting at t1, t2 respectively
       increment t2 by 0.017 for b
    }
    increment t1 by 0.017 for a
  }


    


    Final output with 4 videos should look like this all synced at common sections
enter image description here

    


    Any better ideas ?

    


  • Why is ffmpeg output video contrast / brightness too bright ?

    24 février 2024, par danday74

    I have a .mov file which I run through ffmpeg to create HLS segments / chunks. However, when I playback the HLS video it is too bright.

    


    For a sanity check, I ran the same .mov video file through the FlowPlayer processing pipeline and the results were the same, the output video is too bright !

    


    I have a number of videos. Most do not have this problem but some (and only some) of the .mov files exhibit this issue.

    


    A broken video stream reports (see below for full output) :

    


    Stream #0:0[0x1](und): Video: hevc (Main 10) (hvc1 / 0x31637668), yuv420p10le(tv, bt2020nc/bt2020/arib-std-b67), 1920x1080, 8507 kb/s, 29.98 fps, 29.97 tbr, 600 tbn (default)


    


    A working video stream reports (see below for full output) :

    


    Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 3840x2160, 45457 kb/s, 29.99 fps, 29.97 tbr, 600 tbn (default)


    


    Is this something to do with hevc v h264 (whatever they mean) ?

    


    Incidentally, I am using the native HTML5 video player in conjunction with hls.js to playback the videos.

    


    How do I fix this ?

    


    Here is my ffmpeg command :

    


    ffmpeg -i "rgb.mov" \
  -v warning -preset ultrafast -g 59.96 -sc_threshold 0 \
  -map 0:0 -map 0:0 \
  -s:v:0 1920x1080 -c:v:0 libx264 -b:v:0 4521k \
  -s:v:1 1920x1080 -c:v:1 libx264 -b:v:1 7347k \
  -var_stream_map "v:0 v:1" \
  -master_pl_name master.m3u8 -f hls \
  -hls_time 6 -hls_list_size 0 -hls_playlist_type vod \
  -hls_segment_filename "hls/v%v/chunk%d.ts" "hls/v%v/index.m3u8"


    


    And here are some screenshots showing the original video in comparison to the output video.

    


    ORIGINAL :

    


    enter image description here

    


    OUTPUT :

    


    enter image description here

    


    For the problem video ffmpeg -i "rgb.mov" -hide_banner gives :

    


    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'rgb.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 0
    compatible_brands: qt
    creation_time   : 2021-08-03T11:23:40.000000Z
    com.apple.quicktime.location.accuracy.horizontal: 3.594173
    com.apple.quicktime.location.ISO6709: +51.5483+000.1628+000.459/
    com.apple.quicktime.make: Apple
    com.apple.quicktime.model: iPhone 12 Pro
    com.apple.quicktime.software: 14.7.1
    com.apple.quicktime.creationdate: 2021-08-03T12:23:40+0100
  Duration: 00:00:54.54, start: 0.000000, bitrate: 8730 kb/s
  Stream #0:0[0x1](und): Video: hevc (Main 10) (hvc1 / 0x31637668), yuv420p10le(tv, bt2020nc/bt2020/arib-std-b67), 1920x1080, 8507 kb/s, 29.98 fps, 29.97 tbr, 600 tbn (default)
    Metadata:
      creation_time   : 2021-08-03T11:23:40.000000Z
      handler_name    : Core Media Video
      vendor_id       : [0][0][0][0]
      encoder         : HEVC
    Side data:
      DOVI configuration record: version: 1.0, profile: 8, level: 4, rpu flag: 1, el flag: 0, bl flag: 1, compatibility id: 4
  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 172 kb/s (default)
    Metadata:
      creation_time   : 2021-08-03T11:23:40.000000Z
      handler_name    : Core Media Audio
      vendor_id       : [0][0][0][0]
  Stream #0:2[0x3](und): Data: none (mebx / 0x7862656D), 0 kb/s (default)
    Metadata:
      creation_time   : 2021-08-03T11:23:40.000000Z
      handler_name    : Core Media Metadata
  Stream #0:3[0x4](und): Data: none (mebx / 0x7862656D), 0 kb/s (default)
    Metadata:
      creation_time   : 2021-08-03T11:23:40.000000Z
      handler_name    : Core Media Metadata
  Stream #0:4[0x5](und): Data: none (mebx / 0x7862656D), 34 kb/s (default)
    Metadata:
      creation_time   : 2021-08-03T11:23:40.000000Z
      handler_name    : Core Media Metadata
At least one output file must be specified


    


    For a working video ffmpeg -i "rgb.mov" -hide_banner gives :

    


    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'rgb.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 0
    compatible_brands: qt
    creation_time   : 2021-12-01T10:53:47.000000Z
    com.apple.quicktime.location.accuracy.horizontal: 4.785777
    com.apple.quicktime.location.ISO6709: +51.5485+000.1627+012.533/
    com.apple.quicktime.make: Apple
    com.apple.quicktime.model: iPhone 12 Pro
    com.apple.quicktime.software: 14.8.1
    com.apple.quicktime.creationdate: 2021-12-01T10:53:47+0000
  Duration: 00:00:36.35, start: 0.000000, bitrate: 45692 kb/s
  Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 3840x2160, 45457 kb/s, 29.99 fps, 29.97 tbr, 600 tbn (default)
    Metadata:
      creation_time   : 2021-12-01T10:53:47.000000Z
      handler_name    : Core Media Video
      vendor_id       : [0][0][0][0]
      encoder         : H.264
  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 188 kb/s (default)
    Metadata:
      creation_time   : 2021-12-01T10:53:47.000000Z
      handler_name    : Core Media Audio
      vendor_id       : [0][0][0][0]
  Stream #0:2[0x3](und): Data: none (mebx / 0x7862656D), 0 kb/s (default)
    Metadata:
      creation_time   : 2021-12-01T10:53:47.000000Z
      handler_name    : Core Media Metadata
  Stream #0:3[0x4](und): Data: none (mebx / 0x7862656D), 0 kb/s (default)
    Metadata:
      creation_time   : 2021-12-01T10:53:47.000000Z
      handler_name    : Core Media Metadata
  Stream #0:4[0x5](und): Data: none (mebx / 0x7862656D), 34 kb/s (default)
    Metadata:
      creation_time   : 2021-12-01T10:53:47.000000Z
      handler_name    : Core Media Metadata
At least one output file must be specified


    


  • FFMPEG in Android Kotlin - processed video should have specific resolution

    31 mai 2024, par Utsav

    I'm recording video from both the front and back cameras and I get a PIP video and a horizontal stacked video. I need to merge both videos after that. The problem with merging is that it requires both the videos (PIP and stacked) to have the same resolution and aspect ratio. This is not the case. So the FFMPEG command being executed in code to generate both these videos needs to be modified to make the resolution and aspect ratio the same.

    


    //app -> build.gradle
implementation "com.writingminds:FFmpegAndroid:0.3.2"


    


        private fun connectFfmPeg() {
        val overlayX = 10
        val overlayY = 10
        val overlayWidth = 200
        val overlayHeight = 350

        outputFile1 = createVideoPath().absolutePath
        outputFile2 = createVideoPath().absolutePath
        //Command to generate PIP video
        val cmd1 = arrayOf(
            "-y",
            "-i",
            videoPath1,
            "-i",
            videoPath2,
            "-filter_complex",
            "[1:v]scale=$overlayWidth:$overlayHeight [pip]; [0:v][pip] overlay=$overlayX:$overlayY",
            "-preset",
            "ultrafast",
            outputFile1
        )

        //Command to generate horizontal stack video
        val cmd2 = arrayOf(
            "-y",
            "-i",
            videoPath1,
            "-i",
            videoPath2,
            "-filter_complex",
            "hstack",
            "-preset",
            "ultrafast",
            outputFile2
        )

        val ffmpeg = FFmpeg.getInstance(this)
        //Both commands are executed
        //Following execution code is OK
        //Omitted for brevity
    }


    


    Here is mergeVideos() executed lastly.

    


        private fun mergeVideos(ffmpeg: FFmpeg) {
        //Sample command:
        /*
        ffmpeg -y -i output_a.mp4 -i output_b.mp4 \
        -filter_complex "[0:v:0][0:a:0][1:v:0][1:a:0]concat=n=2:v=1:a=1[outv][outa]" \
        -map "[outv]" -map "[outa]" -preset "ultrafast" output.mp4
        */
        finalOutputFile = createVideoPath().absolutePath

        val cmd = arrayOf(
            "-y",
            "-i",
            outputFile1,
            "-i",
            outputFile2,
            "-filter_complex",
            "[0:v:0][0:a:0][1:v:0][1:a:0]concat=n=2:v=1:a=1[outv][outa]",
            "-map", "[outv]",
            "-map", "[outa]",
            "-preset", "ultrafast",
            finalOutputFile
        )
        //Execution code omitted for brevity
}


    


    Error : Upon execution of mergeVideos(), there is no progress or failure method called. The Logcat stays where it is and the app does not crash either.

    


    Possible solution :
Once I got the generated PIP and horizontal stacked videos to my device's local storage, I tried out some FFMPEG commands on the prompt to process them after moving them to my laptop and it works on the command line :

    


    //First two commands can't be executed in Kotlin code
//This is the main problem
ffmpeg -i v1.mp4 -vf "scale=640:640,setdar=1:1" output_a.mp4
ffmpeg -i v2.mp4 -vf "scale=640:640,setdar=1:1" output_b.mp4
ffmpeg -y -i output_a.mp4 -i output_b.mp4 -filter_complex "[0:v:0][0:a:0][1:v:0][1:a:0]concat=n=2:v=1:a=1[outv][outa]" -map "[outv]" -map "[outa]" -preset "ultrafast" output.mp4
//Merge is successful via command prompt


    


    Please suggest a solution