
Recherche avancée
Médias (2)
-
Rennes Emotion Map 2010-11
19 octobre 2011, par
Mis à jour : Juillet 2013
Langue : français
Type : Texte
-
Carte de Schillerkiez
13 mai 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Texte
Autres articles (35)
-
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 -
Support audio et vidéo HTML5
10 avril 2011MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...) -
De l’upload à la vidéo finale [version standalone]
31 janvier 2010, parLe chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
Upload et récupération d’informations de la vidéo source
Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier ; La génération d’une vignette : extraction d’une (...)
Sur d’autres sites (5978)
-
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


-
Impossible to redirect video stream after conversion (mkv to mp4)
17 décembre 2019, par elgruskoI’m currently realising a school project which aims a streaming video website (like Netflix) using torrent-stream (with the magnet link). I am using NodeJS for the stream part.
My problem is : I can’t redirect the stream to the HTML 5 player while i’m trying to stream and converting (with ffmpeg) video at the same time. I think it’s because I just can’t know what’s will be the final size of the converted file.
In browser’s console I have this message :net::ERR_CONTENT_LENGTH_MISMATCH 200 (OK)
I tried to put this in the header :
Transfer-Encoding: chunked
instead of Content-Length
I specify that the stream (before conversion) works perfectlyThis is my code :
getTorrentFile.then(function (file) {
res.setHeader('Content-Type', 'video/mp4');
res.setHeader('Content-Length', file.length);
const ranges = parseRange(file.length, '15' /* variable à comprendre */, { combine: true });
console.log(ranges);
if (ranges === -1) {
// 416 Requested Range Not Satisfiable
console.log('416')
res.statusCode = 416;
return res.end();
} else if (ranges === -2 || ranges.type !== 'bytes' || ranges.length > 1) {
// 200 OK requested range malformed or multiple ranges requested, stream ent'ire video
if (req.method !== 'GET') return res.end();
console.log('200')
stream = file.createReadStream()
ffmpeg(stream)
.videoCodec('libx264')
.audioCodec('aac')
.output(res)
.output('./video/' + film + '_s' + season + '_e' + episode + '.mp4')
.outputFormat('mp4')
.outputOptions('-movflags frag_keyframe+empty_moov')
.on('error', function(err) {
console.log('An error occurred: ' + err.message);
})
.on('progress', function(progress) {
console.log('Processing: ' + progress.targetSize + 'kb done');
})
.on('end', function() {
console.log('Processing finished !');
})
.addOutputOption('-acodec')
.run()Sorry if i’m not really clear, ask me some questions if you need more informations :)
Thanks for your help, bye :)
-
iff : distinguish fields for audio and video compression
10 mai 2011, par Stefano Sabatiniiff : distinguish fields for audio and video compression