
Recherche avancée
Médias (1)
-
The Slip - Artworks
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Texte
Autres articles (77)
-
MediaSPIP v0.2
21 juin 2013, parMediaSPIP 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, parMultilang 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, parMediaSPIP 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

- 

- 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



Any better ideas ?


-
Why is ffmpeg output video contrast / brightness too bright ?
24 février 2024, par danday74I 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 :




OUTPUT :




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 UtsavI'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