
Recherche avancée
Médias (91)
-
GetID3 - Boutons supplémentaires
9 avril 2013, par
Mis à jour : Avril 2013
Langue : français
Type : Image
-
Core Media Video
4 avril 2013, par
Mis à jour : Juin 2013
Langue : français
Type : Video
-
The pirate bay depuis la Belgique
1er avril 2013, par
Mis à jour : Avril 2013
Langue : français
Type : Image
-
Bug de détection d’ogg
22 mars 2013, par
Mis à jour : Avril 2013
Langue : français
Type : Video
-
Exemple de boutons d’action pour une collection collaborative
27 février 2013, par
Mis à jour : Mars 2013
Langue : français
Type : Image
-
Exemple de boutons d’action pour une collection personnelle
27 février 2013, par
Mis à jour : Février 2013
Langue : English
Type : Image
Autres articles (86)
-
Personnaliser en ajoutant son logo, sa bannière ou son image de fond
5 septembre 2013, parCertains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;
-
Ecrire une actualité
21 juin 2013, parPrésentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
Vous pouvez personnaliser le formulaire de création d’une actualité.
Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...) -
Gestion des droits de création et d’édition des objets
8 février 2011, parPar défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;
Sur d’autres sites (12016)
-
compiling ffmpeg libs with libvpx enabled on windows
12 juin 2021, par SatishsumanNeed some regarding compiling ffmpeg with libvpx enabled on windows. Here is the steps i followed and error i got



- 

- installed msys2 on windows and installed required packages(git,pkg-config,gcc compiler etc)
- cloned libvpx from "https://github.com/webmproject/libvpx.git" and created a vs15 solution(command : ./configure —disable-vp8 —disable-vp9-encoder —target=x86_64-win64-vs15)
- open vpx.sln and compiled vpxmd.lib sucessfully(created a vpx.pc file and kept include and libs at proper place)
- cloned ffmpeg from https://github.com/FFmpeg/FFmpeg.git and from msys2 i tried building it(command : ./configure —enable-asm —enable-yasm —arch=x86_64 —target-os=win64 —disable-encoders —disable-muxers —enable-libvpx —disable-doc —disable-ffplay —disable-ffprobe —disable-ffmpeg —enable-shared —disable-static —disable-bzlib —disable-libopenjpeg —disable-iconv —disable-zlib —prefix=/d/Stadia/FFmpeg —toolchain=msvc —disable-debug)











ffmpeg libs a building fine but it doesn't include libvpx.
config.log is below :





./ffconf.NEscC1Fm/test.c(4) : warning C4311 : 'type cast' : pointer
 truncation from 'vpx_codec_iface_t *(__cdecl *)(void)' to 'long'

 

./compat/windows/mslink /usr/local/lib -nologo -I/usr/local/include
 -libpath :/usr/local/lib -out :./ffconf.NEscC1Fm/test.exe ./ffconf.NEscC1Fm/test.o vpx.lib

 

LINK : warning LNK4044 : unrecognized option
 '/IC :/msys64/usr/local/include' ; ignored lib.obj(vp8_vp8_dx_iface.obj)
 : MSIL .netmodule or module compiled with /GL found ; restarting link
 with /LTCG ; add /LTCG to the link command line to improve linker
 performance

 

LINK : warning LNK4044 : unrecognized option
 '/IC :/msys64/usr/local/include' ; ignored

 

LINK : warning LNK4098 : defaultlib 'MSVCRT' conflicts with use of
 other libs ; use /NODEFAULTLIB:library lib.obj(vpx_mem_vpx_mem.obj) : 
 error LNK2001 : unresolved external symbol __imp_malloc
 lib.obj(vp8_decoder_threading.obj) : error LNK2001 : unresolved
 external symbol __imp__beginthreadex
 lib.obj(vp8_decoder_decodeframe.obj) : error LNK2001 : unresolved
 external symbol __imp_fopen ./ffconf.NEscC1Fm/test.exe : fatal error
 LNK1120 : 3 unresolved externals

 

my msys2 is installed at C :/msys2/ and /home/ correspond to
 C/msys2/home if i use —extra-ldflags="-L/home/usr/local/lib" , linker
 treates it as /LC :/msys2/usr/local/lib and hence fails.





A step by step guide would be very much appreciated here


-
Obtaining frames from IP Camera with low latency
5 février 2023, par Russ1337I am currently using this command to get frames from my RTSP stream and reading frames from stdout :


ffmpeg -nostdin -rtsp_transport tcp -i -pix_fmt bgr24 -an -vcodec rawvideo -f rawvideo -



However, I would like to get the same latency as when I see it via ffplay :


ffplay -fflags nobuffer -flags low_delay -tune zerolatency -framedrop -rtsp_transport tcp 



or when I play it via VLC Media > Open Network Stream with :network_caching=300ms.


I would like to know what other parameters I can use with my ffmpeg command to get an equivalent (or better) result compared to the ffplay command.


I have made references from : How to dump raw RTSP stream to file ?, Open CV RTSP camera buffer lag, How to pipe output from ffmpeg using python ?, bad ffmpeg performace compared to ffplay and VLC, How to minimize the delay in a live streaming with ffmpeg


My current implmentation :


FFMPEG_CMD = "ffmpeg -nostdin -rtsp_transport tcp -i -pix_fmt bgr24 -an -vcodec rawvideo -f rawvideo -".split(" ")
WIDTH = 2560
HEIGHT = 1440

process = subprocess.Popen(FFMPEG_CMD, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL)

while True:
 raw_frame = process.stdout.read(WIDTH*HEIGHT*3)
 frame = np.frombuffer(raw_frame, np.uint8) 
 frame = frame.reshape((HEIGHT, WIDTH, 3))

 <do stuff="stuff" with="with" frame="frame"></do> show frame etc.>



Thanks for reading.



ffmpeg
command I am now using for < 1s latency.

ffmpeg -nostdin -flags low_delay -rtsp_transport tcp -i -pix_fmt bgr24 -an -vcodec rawvideo -f rawvideo -




Implementation with suggestion(s) from Answers :


import subprocess
import numpy as np

FFMPEG_CMD = "ffmpeg -nostdin -flags low_delay -rtsp_transport tcp -i -pix_fmt bgr24 -an -vcodec rawvideo -f rawvideo -".split(" ")
WIDTH = 2560
HEIGHT = 1440

process = subprocess.Popen(FFMPEG_CMD, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL)

raw_frame = np.empty((HEIGHT, WIDTH, 3), np.uint8) 
frame_bytes = memoryview(raw_frame).cast("B")

while process.poll() is None:
 process.stdout.readinto(frame_bytes)
 frame = raw_frame.reshape((HEIGHT, WIDTH, 3))

 <do stuff="stuff" with="with" frame="frame"></do> show frame etc.>



-
Can't view and record graph at the same time using FFMpegWriter [closed]
7 juillet 2024, par Barkın ÖzerSo this code is used for graphing and logging sensor data coming from bluetooth ports. I wanted to add an function that will record the graph in mp4 format. In order to achieve this I used ffmpegWriter. The issue is while this code records the graph I can't view the graph at the same time.


import serial
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation, FFMpegWriter
import openpyxl
from datetime import datetime

# Constants
GRAVITY = 9.81 # Standard gravity in m/s²

# Initialize serial connections to HC-06 devices
ser_x_accel = serial.Serial('COM4', 9600, timeout=1) # X-axis acceleration data
ser_y_angle = serial.Serial('COM11', 9600, timeout=1) # Y-axis angle data

# Initialize empty lists to store data
x_accel_data = []
y_angle_data = []
timestamps = []

# Initialize Excel workbook
wb = openpyxl.Workbook()
ws = wb.active
ws.title = "Sensor Data"
ws.append(["Timestamp", "X Acceleration (m/s²)", "Y Angle (degrees)"])

# Function to update the plot and log data
def update(frame):
 # Read data from serial connections
 line_x_accel = ser_x_accel.readline().decode('utf-8').strip()
 line_y_angle = ser_y_angle.readline().decode('utf-8').strip()
 
 try:
 # Parse and process X-axis acceleration data
 x_accel_g = float(line_x_accel) # Acceleration in g read from serial
 x_accel_ms2 = x_accel_g * GRAVITY # Convert from g to m/s²
 x_accel_data.append(x_accel_ms2)
 
 # Parse and process Y-axis angle data
 y_angle = float(line_y_angle)
 y_angle_data.append(y_angle)
 
 # Append timestamp
 timestamps.append(datetime.now())

 # Limit data points to show only the latest 100
 if len(x_accel_data) > 100:
 x_accel_data.pop(0)
 y_angle_data.pop(0)
 timestamps.pop(0)

 # Log data to Excel with timestamp
 timestamp_str = timestamps[-1].strftime("%H:%M:%S")
 ws.append([timestamp_str, x_accel_data[-1], y_angle_data[-1]])

 # Clear and update plots
 ax1.clear()
 ax1.plot(timestamps, x_accel_data, label='X Acceleration', color='b')
 ax1.legend(loc='upper left')
 ax1.set_ylim([-20, 20]) # Adjust based on expected acceleration range in m/s²
 ax1.set_title('Real-time X Acceleration Data')
 ax1.set_xlabel('Time')
 ax1.set_ylabel('Acceleration (m/s²)')
 ax1.grid(True)

 ax2.clear()
 ax2.plot(timestamps, y_angle_data, label='Y Angle', color='g')
 ax2.legend(loc='upper left')
 ax2.set_ylim([-180, 180])
 ax2.set_title('Real-time Y Angle Data')
 ax2.set_xlabel('Time')
 ax2.set_ylabel('Angle (degrees)')
 ax2.grid(True)

 # Update text boxes with latest values
 text_box.set_text(f'X Acceleration: {x_accel_data[-1]:.2f} m/s²')
 text_box2.set_text(f'Y Angle: {y_angle_data[-1]:.2f}°')
 
 # Save the workbook periodically (every 100 updates)
 if frame % 100 == 0:
 wb.save("sensor_data.xlsx")
 
 except ValueError:
 pass # Ignore lines that are not properly formatted

# Setup the plots
fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(10, 8))
text_box = ax1.text(0.05, 0.95, '', transform=ax1.transAxes, fontsize=12, verticalalignment='top', bbox=dict(boxstyle='round', facecolor='wheat', alpha=0.5))
text_box2 = ax2.text(0.05, 0.95, '', transform=ax2.transAxes, fontsize=12, verticalalignment='top', bbox=dict(boxstyle='round', facecolor='wheat', alpha=0.5))

# Animate the plots
ani = FuncAnimation(fig, update, interval=100) # Update interval of 100ms

# Save the animation as a video file
writer = FFMpegWriter(fps=10, metadata=dict(artist='Me'), bitrate=1800)
ani.save("sensor_data.mp4", writer=writer)

plt.tight_layout()
plt.show()

# Save the workbook at the end of the session
wb.save("sensor_data.xlsx")




I tried using OpenCV to record the graph but then I didn't even got any recording. I think solving this issue with my original code would be a better approach.