
Recherche avancée
Médias (1)
-
The Great Big Beautiful Tomorrow
28 octobre 2011, par
Mis à jour : Octobre 2011
Langue : English
Type : Texte
Autres articles (51)
-
Supporting all media types
13 avril 2011, parUnlike most software and media-sharing platforms, MediaSPIP aims to manage as many different media types as possible. The following are just a few examples from an ever-expanding list of supported formats : images : png, gif, jpg, bmp and more audio : MP3, Ogg, Wav and more video : AVI, MP4, OGV, mpg, mov, wmv and more text, code and other data : OpenOffice, Microsoft Office (Word, PowerPoint, Excel), web (html, CSS), LaTeX, Google Earth and (...)
-
Dépôt de média et thèmes par FTP
31 mai 2013, parL’outil MédiaSPIP traite aussi les média transférés par la voie FTP. Si vous préférez déposer par cette voie, récupérez les identifiants d’accès vers votre site MédiaSPIP et utilisez votre client FTP favori.
Vous trouverez dès le départ les dossiers suivants dans votre espace FTP : config/ : dossier de configuration du site IMG/ : dossier des média déjà traités et en ligne sur le site local/ : répertoire cache du site web themes/ : les thèmes ou les feuilles de style personnalisées tmp/ : dossier de travail (...) -
Keeping control of your media in your hands
13 avril 2011, parThe vocabulary used on this site and around MediaSPIP in general, aims to avoid reference to Web 2.0 and the companies that profit from media-sharing.
While using MediaSPIP, you are invited to avoid using words like "Brand", "Cloud" and "Market".
MediaSPIP is designed to facilitate the sharing of creative media online, while allowing authors to retain complete control of their work.
MediaSPIP aims to be accessible to as many people as possible and development is based on expanding the (...)
Sur d’autres sites (3159)
-
ffmpeg errors when playing a playlist - Non monotonous DTS
20 novembre 2023, par Evilmachinei have a strange bug in ffmpeg. I am using ffmpeg to stream Twitch VODs and CLIPs to a 24/7 twitch channel. If i stream the files one by one its working. If i am streaming a playlist containing vods and clips i get this error when the shorter clips are playing :


[flv @ 0x555677050c60] Non-monotonous DTS in output stream 0:0; previous: 56867, current: 31846; changing to 56867. This may result in incorrect timestamps in the output file.


and the video stops. Once the playlist has a longer vod again it is working.


here is my code that i use to stream :


while [ 1 -eq 1 ]
do
ffmpeg -fflags +igndts -re -f concat -safe 0 -i playlist.txt -codec copy -flvflags no_duration_filesize -f flv rtmp://XXXXXXXXX
done



If i look into ffprobe the files seems both to be normal :


VODs


ffprobe version 5.1.3-1+rpt4 Copyright (c) 2007-2022 the FFmpeg developers
 built with gcc 12 (Debian 12.2.0-14)
 configuration: --prefix=/usr --extra-version=1+rpt4 --toolchain=hardened --incdir=/usr/include/aarch64-linux-gnu --enable-gpl --disable-stripping --disable-mmal --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sand --enable-sdl2 --disable-sndio --enable-libjxl --enable-neon --enable-v4l2-request --enable-libudev --enable-epoxy --libdir=/usr/lib/aarch64-linux-gnu --arch=arm64 --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared
 libavutil 57. 28.100 / 57. 28.100
 libavcodec 59. 37.100 / 59. 37.100
 libavformat 59. 27.100 / 59. 27.100
 libavdevice 59. 7.100 / 59. 7.100
 libavfilter 8. 44.100 / 8. 44.100
 libswscale 6. 7.100 / 6. 7.100
 libswresample 4. 7.100 / 4. 7.100
 libpostproc 56. 6.100 / 56. 6.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Speedrun - Goof Troop - Coop - @olli_wan und luk30994 -- Disney's Goof Troop.mp4':
 Metadata:
 major_brand : mp42
 minor_version : 0
 compatible_brands: isommp42
 creation_time : 2023-10-17T11:46:25.000000Z
 Duration: 00:28:23.02, start: 0.000000, bitrate: 1004 kb/s
 Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1280x720 [SAR 1:1 DAR 16:9], 873 kb/s, 30 fps, 30 tbr, 15360 tbn (default)
 Metadata:
 creation_time : 2023-10-17T11:46:25.000000Z
 handler_name : ISO Media file produced by Google Inc. Created on: 10/17/2023.
 vendor_id : [0][0][0][0]
 Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
 Metadata:
 creation_time : 2023-10-17T11:46:25.000000Z
 handler_name : ISO Media file produced by Google Inc. Created on: 10/17/2023.
 vendor_id : [0][0][0][0]



CLIPS


ffprobe version 5.1.3-1+rpt4 Copyright (c) 2007-2022 the FFmpeg developers
 built with gcc 12 (Debian 12.2.0-14)
 configuration: --prefix=/usr --extra-version=1+rpt4 --toolchain=hardened --incdir=/usr/include/aarch64-linux-gnu --enable-gpl --disable-stripping --disable-mmal --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sand --enable-sdl2 --disable-sndio --enable-libjxl --enable-neon --enable-v4l2-request --enable-libudev --enable-epoxy --libdir=/usr/lib/aarch64-linux-gnu --arch=arm64 --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared
 libavutil 57. 28.100 / 57. 28.100
 libavcodec 59. 37.100 / 59. 37.100
 libavformat 59. 27.100 / 59. 27.100
 libavdevice 59. 7.100 / 59. 7.100
 libavfilter 8. 44.100 / 8. 44.100
 libswscale 6. 7.100 / 6. 7.100
 libswresample 4. 7.100 / 4. 7.100
 libpostproc 56. 6.100 / 56. 6.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Clip -- Luk - Terra - Lebensweisheiten mit Lukas Thema Smart.mp4':
 Metadata:
 major_brand : isom
 minor_version : 512
 compatible_brands: isomiso2avc1mp41
 encoder : Lavf57.83.100
 Duration: 00:00:05.00, start: 0.000000, bitrate: 5520 kb/s
 Stream #0:0[0x1](und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, unknown/bt709/unknown, progressive), 1280x720, 5374 kb/s, 60.20 fps, 60 tbr, 15360 tbn (default)
 Metadata:
 handler_name : VideoHandler
 vendor_id : [0][0][0][0]
 Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
 Metadata:
 handler_name : SoundHandler
 vendor_id : [0][0][0][0]



Has someone a hint why this error happens and how i can avoid them ?
Is gstreamer better for this approach ?


Thanks a lot in Advance.


I tried changing the files.


-
memory leak reading video frames to numpy array using ffmpeg as a python subprocess
19 novembre 2023, par paddygI can stream videos frame by frame to an OpenGL Texture2D OK in python (pi3d module, example in pi3d_demos/VideoWalk.py) but I've noticed that it gradually leaks memory. Below is a stripped down version of the code that shows the problem.


Can anyone see where I'm leaking ? The memory seems to be recovered when python stops. I've tried explicitly setting things to
None
or calling the garbage collector manually.

#!/usr/bin/python
import os
import numpy as np
import subprocess
import threading
import time
import json

def get_dimensions(video_path):
 probe_cmd = f'ffprobe -v error -show_entries stream=width,height,avg_frame_rate -of json "{video_path}"'
 probe_result = subprocess.check_output(probe_cmd, shell=True, text=True)
 video_info_list = [vinfo for vinfo in json.loads(probe_result)['streams'] if 'width' in vinfo]
 if len(video_info_list) > 0:
 video_info = video_info_list[0] # use first if more than one!
 return(video_info['width'], video_info['height'])
 else:
 return None

class VideoStreamer:
 def __init__(self, video_path):
 self.flag = False # use to signal new texture
 self.kill_thread = False
 self.command = [ 'ffmpeg', '-i', video_path, '-f', 'image2pipe',
 '-pix_fmt', 'rgb24', '-vcodec', 'rawvideo', '-']
 dimensions = get_dimensions(video_path)
 if dimensions is not None:
 (self.W, self.H) = dimensions
 self.P = 3
 self.image = np.zeros((self.H, self.W, self.P), dtype='uint8')
 self.t = threading.Thread(target=self.pipe_thread)
 self.t.start()
 else: # couldn't get dimensions for some reason - assume not able to read video
 self.W = 240
 self.H = 180
 self.P = 3
 self.image = np.zeros((self.H, self.W, self.P), dtype='uint8')
 self.t = None

 def pipe_thread(self):
 pipe = None
 while not self.kill_thread:
 st_tm = time.time()
 if pipe is None:
 pipe = subprocess.Popen(self.command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, bufsize=-1)
 self.image = np.frombuffer(pipe.stdout.read(self.H * self.W * self.P), dtype='uint8') # overwrite array
 pipe.stdout.flush() # presumably nothing else has arrived since read()
 pipe.stderr.flush() # ffmpeg sends commentary to stderr
 if len(self.image) < self.H * self.W * self.P: # end of video, reload
 pipe.terminate()
 pipe = None
 else:
 self.image.shape = (self.H, self.W, self.P)
 self.flag = True
 step = time.time() - st_tm
 time.sleep(max(0.04 - step, 0.0)) # adding fps info to ffmpeg doesn't seem to have any effect
 if pipe is not None:
 pipe.terminate()
 pipe = None

 def kill(self):
 self.kill_thread = True
 if self.t is not None:
 self.t.join()

vs = None
try:
 while True:
 for (path, _, videos) in os.walk("/home/patrick/Pictures/videos"):
 for video in videos:
 print(video)
 os.system("free") # shows gradually declining memory available
 vs = VideoStreamer(os.path.join(path, video))
 for i in range(500):
 tries = 0
 while not vs.flag and tries < 5:
 time.sleep(0.001)
 tries += 1
 # at this point vs.image is a numpy array HxWxP bytes
 vs.flag = False
 vs.kill()
except KeyboardInterrupt:
 if vs is not None:
 vs.kill()


os.system("free")



-
Compress multiple video at same time or single process using ffmepg python
3 janvier 2023, par Fraction AnalyticsI create python code to list all mp4 files in a current directory using below code


compress.py


import os
rootdir = 'SUBASH'
extensions = ('.mp4', '.avi', '.wmv')

for subdir, dirs, files in os.walk(rootdir):
 for file in files:
 ext = os.path.splitext(file)[-1].lower()
 print(ext)
 if ext in extensions:
 print (os.path.join(subdir, file))



After listing all
.mp4
files how to compress all file at a time using python andffmpeg


I tried :


ffmpeg -i input.mp4 -vcodec libx265 -acodec copy output.mp4


I tried this method to compress single video at a time but i want to do same thing for all .mp4 files in a current or specific directory