
Recherche avancée
Autres articles (49)
-
Les autorisations surchargées par les plugins
27 avril 2010, parMediaspip core
autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs -
Publier sur MédiaSpip
13 juin 2013Puis-je poster des contenus à partir d’une tablette Ipad ?
Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir -
HTML5 audio and video support
13 avril 2011, parMediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
For older browsers the Flowplayer flash fallback is used.
MediaSPIP allows for media playback on major mobile platforms with the above (...)
Sur d’autres sites (8626)
-
Is Google Analytics Accurate ? 6 Important Caveats
8 novembre 2022, par Erin -
FFMPEG Take 1 second clips each video file from a directory of files, and until total playtime reached
3 février 2021, par MatthewI'm working on a music art video project for a song.


I have a directory that contains approximately 400 individual videos


- 

- varying lengths (as short as 3 seconds and as long as 31 minutes)
- varying file types (mp4 and webm)
- varying resolutions/framerates/bitrates








The output video should consist of :


- 

- 1 second chunks of each video
- in round-robin fashion
- until all videos are played fully or the output total video length reaches a certain limit (example, 20 minutes).
- Output video should be 1280×720 at 24fps, with no preference to bitrate.
- Videos that are larger should be scaled down and letterboxed (vertically or horizontally).
- Audio is not important at all. The video can be silent. I can overlay audio separately.














I do not want to loop short videos. In the example below, you can see that, for
top-left-view-take-1.mp4
, each 'clip' that's taken is incrementally further into the video. In other words, it shouldn't take the same 1 second clip from the beginning. The goal is to get further in to each individual video as the output video progresses.

For example, say my directory contains files such as the following (and, for the example here, we'll say that this is all files in the directory) :


overhead-view-take-1.mp4 (3 seconds, for the sake of the question)
top-right-view-take-1.mp4 (3 seconds, for the sake of the question)
top-right-view-take-2.mp4 (5 seconds, for the sake of the question)
outside-kaleidoscope-1.mp4
yellow-kaleidoscope-1.mp4
red-kaleidoscope-1.mp4
brake-lights-slow-1.mp4
soft-city-lights.webm



Assume anything that isn't marked with a video duration is at least 5 seconds long.


Based on the above files & times, here would be the order and time code of each clip during the first 30 seconds of the output video :


Based on each video's total duration, the output video should include 1 second clips from all videos in the directory.







 Output time 

Clip time 

Clip file 







 00:00-00:01 

00:00-00:01 

overhead-view-take-1.mp4 




 00:01-00:02 

00:00-00:01 

top-right-view-take-1.mp4 




 00:02-00:03 

00:00-00:01 

top-right-view-take-2.mp4 




 00:03-00:04 

00:00-00:01 

outside-kaleidoscope-1.mp4 




 00:04-00:05 

00:00-00:01 

yellow-kaleidoscope-1.mp4 




 00:05-00:06 

00:00-00:01 

red-kaleidoscope-1.mp4 




 00:06-00:07 

00:00-00:01 

brake-lights-slow-1.mp4 




 00:07-00:08 

00:00-00:01 

soft-city-lights.webm 




 00:08-00:09 

00:01-00:02 

overhead-view-take-1.mp4 




 00:09-00:10 

00:01-00:02 

top-right-view-take-1.mp4 




 00:10-00:11 

00:01-00:02 

top-right-view-take-2.mp4 




 00:11-00:12 

00:01-00:02 

outside-kaleidoscope-1.mp4 




 00:12-00:13 

00:01-00:02 

yellow-kaleidoscope-1.mp4 




 00:13-00:14 

00:01-00:02 

red-kaleidoscope-1.mp4 




 00:14-00:15 

00:01-00:02 

brake-lights-slow-1.mp4 




 00:15-00:16 

00:01-00:02 

soft-city-lights.webm 




 00:16-00:17 

00:02-00:03 

overhead-view-take-1.mp4 




 00:17-00:18 

00:02-00:03 

top-right-view-take-1.mp4 




 00:18-00:19 

00:02-00:03 

top-right-view-take-2.mp4 




 00:19-00:20 

00:02-00:03 

outside-kaleidoscope-1.mp4 




 00:20-00:21 

00:02-00:03 

yellow-kaleidoscope-1.mp4 




 00:21-00:22 

00:02-00:03 

red-kaleidoscope-1.mp4 




 00:22-00:23 

00:02-00:03 

brake-lights-slow-1.mp4 




 00:23-00:24 

00:02-00:03 

soft-city-lights.webm 









Now, the output video should include 1 second clips only from videos that still have time remaining. The videos that don't have any time remaining, such as
overhead-view-take-1.mp4
andtop-right-view-take-1.mp4
, are not present here.






 Output time 

Clip time 

Clip file 







 00:24-00:25 

00:03-00:04 

top-right-view-take-2.mp4 




 00:25-00:26 

00:03-00:04 

outside-kaleidoscope-1.mp4 




 00:26-00:27 

00:03-00:04 

yellow-kaleidoscope-1.mp4 




 00:27-00:28 

00:03-00:04 

red-kaleidoscope-1.mp4 




 00:28-00:29 

00:03-00:04 

brake-lights-slow-1.mp4 




 00:29-00:30 

00:03-00:04 

soft-city-lights.webm 









What I've tried


- 

- I've read through the docs and cobbled together some code that produces output, but it only seems to work with images ; I can't get the same thing to work with videos (specifically the incremental chunks).
- I've tried manipulating commands meant to `create a snapshot every x seconds/frames' but I've hit dead ends there.
- I've also started trying to create a text file to run the input from. That's the point where I thought it would make sense to ask here.








My main issue is picking off incremental chunks of individual videos, and playing those in sequence.


Thoughts ?


Environment details
I have access to Win, Mac, and Linux machines. So, that environment isn't as important to me. Here's ffmpeg's output :


ffmpeg version 4.3.1-0york0~16.04 Copyright (c) 2000-2020 the FFmpeg developers
 built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.12) 20160609
 configuration: --prefix=/usr --extra-version='0york0~16.04' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-libzimg --enable-pocketsphinx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
 libavutil 56. 51.100 / 56. 51.100
 libavcodec 58. 91.100 / 58. 91.100
 libavformat 58. 45.100 / 58. 45.100
 libavdevice 58. 10.100 / 58. 10.100
 libavfilter 7. 85.100 / 7. 85.100
 libavresample 4. 0. 0 / 4. 0. 0
 libswscale 5. 7.100 / 5. 7.100
 libswresample 3. 7.100 / 3. 7.100
 libpostproc 55. 7.100 / 55. 7.100
Hyper fast Audio and Video encoder



-
Python subprocess or os.system not working with ffmpeg
13 février 2024, par confusedI've been trying to get this darn programming run since last night and cannot seem to get anything to work. I want to first trim the video and then resize the video. I'm reading which video and what to give the final name from a text file, over 780 lines long, quite a few videos.


Thus far with every idea under the sun I have tried, subprocess and os.system, I can't get anything more than error statements or right now all I get is no file creation of any kind. How the heck do I get this to work correctly ?


import ffmpeg
import subprocess
import os

os.chdir('/home/Downloads/SRs/')
a = open('SRt.txt', 'r')
b = a.readlines()
a.close()
for c in range(0, len(b)-1):
 words = list(b[c].split(" "))
 d = len(words)
 e = words[d-1]
 f = b[c].replace(e, 'FR' + str(c) + '.mp4')
 words[d-1] = 'FR' + str(c) + '.mp4'
 print(f)
 subprocess.call(f, shell=True)
 subprocess.call([
 'ffmpeg',
 '-i',
 "'FR' + str(c) + '.mp4'",
 '-vf scale=320:240',
 words[d-1],
 ])



Here are some examples of what the original file would look like :


ffmpeg -i SR.mp4 -ss 00:00:00 -to 00:01:22 -c:v copy -a copy CPH.mp4
 ffmpeg -i SR.mp4 -ss 00:01:24 -to 00:02:58 -c:v copy -a copy CG.mp4
 ffmpeg -i SR.mp4 -ss 00:02:59 -to 00:05:41 -c:v copy -a copy CSGP.mp4



Nothing fancy just separating video in its own individual segments and then resaving it before resizing it.


I tried :


z=subprocess.call(f, shell=True, stdout=subprocess.PIPE)
print(z)



But all I get is '1'.


When I changed it to :


z=subprocess.call(f, shell=True, stderr=subprocess.PIPE)
print(z)



All I get is '1'.


Maybe I'm doing something wrong.