
Recherche avancée
Autres articles (34)
-
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 -
Gestion de la ferme
2 mars 2010, parLa ferme est gérée dans son ensemble par des "super admins".
Certains réglages peuvent être fais afin de réguler les besoins des différents canaux.
Dans un premier temps il utilise le plugin "Gestion de mutualisation" -
Other interesting software
13 avril 2011, parWe don’t claim to be the only ones doing what we do ... and especially not to assert claims to be the best either ... What we do, we just try to do it well and getting better ...
The following list represents softwares that tend to be more or less as MediaSPIP or that MediaSPIP tries more or less to do the same, whatever ...
We don’t know them, we didn’t try them, but you can take a peek.
Videopress
Website : http://videopress.com/
License : GNU/GPL v2
Source code : (...)
Sur d’autres sites (4906)
-
FFmpeg select jpg files
28 août 2023, par pinq-I want to make gif out of images. Images names are in format 1-XXXxxxxxx.jpg, 2-XXX-xxxx.jpg, 3-XXXxxxX.jpg.... 123-XXxxxxX.jpg.


I'm trying to use this command :


ffmpeg -framerate 1 -i 'images/%d-*.jpg' -s 320x180 ready.gif



But then I get error message :


'images/%d-*.jpg': No such file or directory



how do select images that start with number ?


-
HOW TO APPLY TRANSITION EFFECTS IN FFMPEG ? [closed]
8 janvier 2023, par SMARTI have 7 videos with audio, i tried to apply transition effects on these files, written code in python for this , i got error .


python code :
import subprocess as sp


def runffmpeg(cmd):
 try:
 pipe = sp.Popen(cmd, stdout=sp.PIPE, stderr=sp.STDOUT,
 universal_newlines=True)
 
 ffmpeg_output, _ = pipe.communicate()
 
 print(ffmpeg_output)
 return (ffmpeg_output)
 
 except sp.CalledProcessError as err:
 print("FFmpeg stdout output on error:\n" + err.output)
 
 def get_duration(fn):
 cmd = (
 f"ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 {fn}")
 
 cmd1 = (
 f"ffprobe -v error -of flat=s_ -select_streams 1 -show_entries stream=duration -of default=noprint_wrappers=1:nokey=1 {fn}")
 try:
 pipe = sp.Popen(cmd, stdout=sp.PIPE, stderr=sp.STDOUT,
 universal_newlines=True)
 
 viddur, _ = pipe.communicate()
 
 print(viddur)
 
 pipe = sp.Popen(cmd1, stdout=sp.PIPE, stderr=sp.STDOUT,
 universal_newlines=True)
 
 auddur, _ = pipe.communicate()
 
 try:
 auddur = float(auddur.strip())
 except:
 auddur = 0
 
 print(auddur)
 
 # if (len(auddur) == 0):
 # auddur = 0
 
 return float(viddur.strip()), (auddur)
 
 except sp.CalledProcessError as err:
 print("FFmpeg stdout output on error:\n" + err.output)
 
 
 def trans(clips, effects, out="trans.mp4"):
 filtc = " [v1][v2]xfade=wipedown:duration=1:offset=4[x1];"
 i = 0
 fcv = ""
 fca = ""
 d1 = 0
 af = ""
 dur = []
 aud = []
 inp = ""
 j = 0
 print(len(clips))
 
 for x in clips:
 print(x[0])
 inp = (inp + " -i " + x)
 
 print(effects[0])
 print(x)
 
 v, a = get_duration(fn=x)
 dur.append(v)
 
 k = 0
 for x in dur:
 
 if (k == 0):
 fca = (fca + f"[{k}:a]adelay=0|0 [a{k+1}];")
 else:
 fca = (fca + f"[{k}:a]adelay={d1}|{d1} [a{k+1}];")
 aud.append(f"[a{k+1}]")
 k = (k+1)
 d1 = (d1+((x*1000)+3.5))
 
 d1 = 0
 for x in efects:
 for v in range(0, j+1, +1):
 d1 = (d1 + dur[v])
 d1 = (d1-((v+1)*3.5))
 # [0:a]adelay=0|0 [a1];
 if (i > 1):
 
 try:
 fcv = (
 fcv+f"[x{(i)}][{(i)}:v]xfade={x}:duration=3:offset={d1} [x{(i+1)}];")
 except:
 pass
 else:
 print("j = %d" % j)
 fcv = (
 fcv+f"[{(i)}:v][{(i+1)}:v]xfade={x}:duration=3:offset={d1} [x{(i+1)}];")
 
 j = (j+1)
 i = (i+1)
 
 for a in aud:
 af = (af+a)
 af = (af+f"amix=inputs={len(aud)} [faud]")
 
 inp = (inp+" -filter_complex \"")
 cmd = (
 f"ffmpeg {inp} {fcv} {fca} {af} \" -pix_fmt yuv420p -map \"[x{i}]\" -map \"[faud]\" -y {out}")
 
 print(cmd)
 
 try:
 pipe = sp.Popen(cmd, stdout=sp.PIPE, stderr=sp.STDOUT,
 universal_newlines=True)
 
 ffmpeg_output, _ = pipe.communicate()
 
 print(ffmpeg_output)
 
 except sp.CalledProcessError as err:
 print("FFmpeg stdout output on error:\n" + err.output)
 
 



these functions creates ffmpeg code like :
ffmpeg -i out1.mp4 -i out2.mp4 -i out3.mp4 -i out4.mp4 -i out5.mp4 -i out6.mp4 -i out7.mp4 -filter_complex " [0:v][1:v]xfade=wipedown:duration=3:offset=6.006009000000001 [x1] ;[1:v][2:v]xfade=dissolve:duration=3:offset=14.030023 [x2] ;[x2][2:v]xfade=pixelize:duration=3:offset=20.572042000000003 [x3] ;[x3][3:v]xfade=vuslice:duration=3:offset=21.621068000000008 [x4] ;[x4][4:v]xfade=radial:duration=3:offset=14.188099000000015 [x5] ;[x5][5:v]xfade=vertopen:duration=3:offset=-5.737862999999978 [x6] ; [0:a]adelay=0|0 [a1] ;[1:a]adelay=9509.509|9509.509 [a2] ;[2:a]adelay=18531.014000000003|18531.014000000003 [a3] ;[3:a]adelay=27552.519000000004|27552.519000000004 [a4] ;[4:a]adelay=36063.026000000005|36063.026000000005 [a5] ;[5:a]adelay=45084.531|45084.531 [a6] ;[6:a]adelay=53595.038|53595.038 [a7] ; [a1][a2][a3][a4][a5][a6][a7]amix=inputs=7 [faud] " -pix_fmt yuv420p -map "[x6]" -map "[faud]" -y trans.mp4


this ffmpeg command generates error :


ffmpeg version 2022-12-25-git-eeb280f351-full_build-www.gyan.dev Copyright (c) 2000-2022 the FFmpeg developers
 built with gcc 12.1.0 (Rev2, Built by MSYS2 project)
 configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libvpl --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
 libavutil 57. 43.100 / 57. 43.100
 libavcodec 59. 55.103 / 59. 55.103
 libavformat 59. 34.102 / 59. 34.102
 libavdevice 59. 8.101 / 59. 8.101
 libavfilter 8. 53.100 / 8. 53.100
 libswscale 6. 8.112 / 6. 8.112
 libswresample 4. 9.100 / 4. 9.100
 libpostproc 56. 7.100 / 56. 7.100
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'out1.mp4':
 Metadata:
 major_brand : isom
 minor_version : 512
 compatible_brands: isomiso2avc1mp41
 encoder : Lavf59.34.102
 Duration: 00:00:09.51, start: 0.000000, bitrate: 1358 kb/s
 Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc, bt470bg/unknown/unknown, progressive), 1080x1920, 1303 kb/s, 26.94 fps, 25 tbr, 1000k tbn (default)
 Metadata:
 handler_name : VideoHandler
 vendor_id : [0][0][0][0]
 encoder : Lavc59.55.103 libx264
 Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 51 kb/s (default)
 Metadata:
 handler_name : SoundHandler
 vendor_id : [0][0][0][0]
 Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'out2.mp4':
 Metadata:
 major_brand : isom
 minor_version : 512
 compatible_brands: isomiso2avc1mp41
 encoder : Lavf59.34.102
 Duration: 00:00:09.02, start: 0.000000, bitrate: 1060 kb/s
 Stream #1:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc, bt470bg/unknown/unknown, progressive), 1080x1920, 1007 kb/s, 26.73 fps, 25 tbr, 1000k tbn (default)
 Metadata:
 handler_name : VideoHandler
 vendor_id : [0][0][0][0]
 encoder : Lavc59.55.103 libx264
 Stream #1:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 47 kb/s (default)
 Metadata:
 handler_name : SoundHandler
 vendor_id : [0][0][0][0]
 Input #2, mov,mp4,m4a,3gp,3g2,mj2, from 'out3.mp4':
 Metadata:
 major_brand : isom
 minor_version : 512
 compatible_brands: isomiso2avc1mp41
 encoder : Lavf59.34.102
 Duration: 00:00:09.02, start: 0.000000, bitrate: 1228 kb/s
 Stream #2:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc, bt470bg/unknown/unknown, progressive), 1080x1920, 1178 kb/s, 26.73 fps, 25 tbr, 1000k tbn (default)
 Metadata:
 handler_name : VideoHandler
 vendor_id : [0][0][0][0]
 encoder : Lavc59.55.103 libx264
 Stream #2:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 46 kb/s (default)
 Metadata:
 handler_name : SoundHandler
 vendor_id : [0][0][0][0]
 Input #3, mov,mp4,m4a,3gp,3g2,mj2, from 'out4.mp4':
 Metadata:
 major_brand : isom
 minor_version : 512
 compatible_brands: isomiso2avc1mp41
 encoder : Lavf59.34.102
 Duration: 00:00:08.51, start: 0.000000, bitrate: 987 kb/s
 Stream #3:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc, bt470bg/unknown/unknown, progressive), 1080x1920, 938 kb/s, 26.57 fps, 25 tbr, 1000k tbn (default)
 Metadata:
 handler_name : VideoHandler
 vendor_id : [0][0][0][0]
 encoder : Lavc59.55.103 libx264
 Stream #3:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 43 kb/s (default)
 Metadata:
 handler_name : SoundHandler
 vendor_id : [0][0][0][0]
 Input #4, mov,mp4,m4a,3gp,3g2,mj2, from 'out5.mp4':
 Metadata:
 major_brand : isom
 minor_version : 512
 compatible_brands: isomiso2avc1mp41
 encoder : Lavf59.34.102
 Duration: 00:00:09.02, start: 0.000000, bitrate: 1221 kb/s
 Stream #4:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc, bt470bg/unknown/unknown, progressive), 1080x1920, 1170 kb/s, 26.73 fps, 25 tbr, 1000k tbn (default)
 Metadata:
 handler_name : VideoHandler
 vendor_id : [0][0][0][0]
 encoder : Lavc59.55.103 libx264
 Stream #4:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 47 kb/s (default)
 Metadata:
 handler_name : SoundHandler
 vendor_id : [0][0][0][0]
 Input #5, mov,mp4,m4a,3gp,3g2,mj2, from 'out6.mp4':
 Metadata:
 major_brand : isom
 minor_version : 512
 compatible_brands: isomiso2avc1mp41
 encoder : Lavf59.34.102
 Duration: 00:00:08.51, start: 0.000000, bitrate: 1073 kb/s
 Stream #5:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc, bt470bg/unknown/unknown, progressive), 1080x1920, 1027 kb/s, 26.57 fps, 25 tbr, 1000k tbn (default)
 Metadata:
 handler_name : VideoHandler
 vendor_id : [0][0][0][0]
 encoder : Lavc59.55.103 libx264
 Stream #5:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 41 kb/s (default)
 Metadata:
 handler_name : SoundHandler
 vendor_id : [0][0][0][0]
 Input #6, mov,mp4,m4a,3gp,3g2,mj2, from 'out7.mp4':
 Metadata:
 major_brand : isom
 minor_version : 512
 compatible_brands: isomiso2avc1mp41
 encoder : Lavf59.34.102
 Duration: 00:00:09.02, start: 0.000000, bitrate: 757 kb/s
 Stream #6:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc, bt470bg/unknown/unknown, progressive), 1080x1920, 705 kb/s, 26.73 fps, 25 tbr, 1000k tbn (default)
 Metadata:
 handler_name : VideoHandler
 vendor_id : [0][0][0][0]
 encoder : Lavc59.55.103 libx264
 Stream #6:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 46 kb/s (default)
 Metadata:
 handler_name : SoundHandler
 vendor_id : [0][0][0][0]
 Filter xfade:default has an unconnected output



Filter xfade:default has an unconnected output , what does it mean ?


in adelay area , getting -ve nos , what to do ?


#useage :


vc = ["C1.mp4", "C2.mp4", "C3.mp4", "C4.mp4", "C5.mp4", "C6.mp4", "C7.mp4"]


i = 1
 gc = []
 for x in vc:
 gc.append(f"out{i}.mp4")
 i = (i+1)
 
 print(gc)
 
 trans(clips=gc, effects=efects)



system details :
windows 10 64 bits
python 3.9 64 bits


-
FFMPEG - modify only part of video with select filter
28 janvier 2023, par CompactI have a video file - an NTSC DVD rip. I want to convert it into PAL DVD. The problem with that NTSC DVD is that it's a mixture of telecined content, true progressive 29.97 content, true interlaced content at 29.97 fps. The problem is with the true interlaced content - it's sometimes encoded as top field first and sometimes as bottom field first...


To keep quality as much as possible, I would like remove telecined frames, but keep those interlaced sequences and turn them to 25 fps top field first. This is where the problem arises.


I tried to make filter_complex chain with two select filters, where I reverse the fields for bottom field first frames, but the video is not encoding at all when I do that.


Here is an example filter chain I tried to make - I've made a lot of iterations of something similar, using select or metadata select to no avail. I guess I don't understand how select and metadata select filters work. And I don't know how to do what I want.


ffmpeg -i "input" -flags +ildct+ilme \
-filter_complex\
[0:v]idet,setparams=color_primaries=smpte170m:color_trc=bt709:colorspace=smpte170m \
,metadata=select:key=lavfi.idet.single.current_frame:value=bff:function=same_str,phase=b[bot];\[bot]metadata=select:key=lavfi.idet.single.current_frame:value=tff:function=same_str\
,fieldmatch=mode=pcn_ub:combmatch=full,decimate[tff];\
[tff]metadata=select:key=lavfi.idet.single.current_frame:value=progressive:function=same_str\
,fps=24000/1001[v1];[v1]select,setfield=tff[v]"



If all of the interlaced content was top field first, I could simply do something similar to this :


ffmpeg -i "input" -flags +ildct+ilme \
-filter:v "dejudder,fps=30000/1001,fieldmatch=mode=pcn_ub:combmatch=full,\
decimate,settb=1/25000,setpts=N/(25*TB),setfield=tff,setparams=field_mode=tff"



Is that possible with ffmpeg ? To just modify a part of video and then modify it whole, including with the previous modification ?