
Recherche avancée
Autres articles (112)
-
Qualité du média après traitement
21 juin 2013, parLe bon réglage du logiciel qui traite les média est important pour un équilibre entre les partis ( bande passante de l’hébergeur, qualité du média pour le rédacteur et le visiteur, accessibilité pour le visiteur ). Comment régler la qualité de son média ?
Plus la qualité du média est importante, plus la bande passante sera utilisée. Le visiteur avec une connexion internet à petit débit devra attendre plus longtemps. Inversement plus, la qualité du média est pauvre et donc le média devient dégradé voire (...) -
Script d’installation automatique de MediaSPIP
25 avril 2011, parAfin de palier aux difficultés d’installation dues principalement aux dépendances logicielles coté serveur, un script d’installation "tout en un" en bash a été créé afin de faciliter cette étape sur un serveur doté d’une distribution Linux compatible.
Vous devez bénéficier d’un accès SSH à votre serveur et d’un compte "root" afin de l’utiliser, ce qui permettra d’installer les dépendances. Contactez votre hébergeur si vous ne disposez pas de cela.
La documentation de l’utilisation du script d’installation (...) -
MediaSPIP version 0.1 Beta
16 avril 2011, parMediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)
Sur d’autres sites (10971)
-
Draw FFmpeg AVFrame data with OpenGL with Go
27 avril 2018, par nevernewI’m making a video player in Go (on Windows) using FFmpeg and OpenGl, with the go wrappers goav and go-gl respectively. I want to set the pixels (stored in AVFrame->data) as a texture to display with OpenGL.
I have it drawing pixels from a test array I created in Go, but it’s not taking the AVFrame data at all. The gl wrapper is giving me an error
panic: reflect: call of reflect.Value.Pointer on uintptr Value
with this code, I’ve tried different ways, trying to cast the data to the right type to be accepted but to no avail.This is the offending code where
f
is of type*Frame
:type Frame C.struct_AVFrame
dataPtr := (*uint8)(unsafe.Pointer((*C.uint8_t)(unsafe.Pointer(&f.data))))
dataAddr := uintptr(unsafe.Pointer(dataPtr))
glPixelPointer := gl.Ptr(dataAddr) // reflect error happens here, so the pointer is wrongTrying to get the data from this C struct :
#include
typedef struct AVFrame {
#define AV_NUM_DATA_POINTERS 8
uint8_t *data[AV_NUM_DATA_POINTERS];
}I can provide the rest of the code if needed, but there’s a lot of it to get the example running.
-
Python stream H.264 data over socket
9 janvier 2017, par Ezra KnoblochI am creating a H.264 encoded stream on my Raspberry using the tool ’raspivid’ and sending that stream to stdout.
What i want is sending that stream to another computer and feed it to ffmpeg which in turn feeds it to MPlayer.When i do this using netcat and pipes it does work really good, i have a clean stream without any graphic bugs.
I try to get the raspivid stdout over the subprocess module, see code below. Im more or less sure the problem lies somewhere there cause i did something similar a while back and it worked without many problems, and the only thing i did different now is using subprocess.
My question is : does someone see what causes my problems ?
Some Notes :
-
Using streamObj.get_data(pcktSize) did never work until now (MPlayer and ffmpeg cant open the stream)
-
process.stdout.readline() seems to be a bit faster than just read()
-
this code seems to be slower than just piping and netcat, how would i make it faster ? (while still using python)
i need to write this sentence cause the code formatting below would be corrupted if i would not.
import subprocess, socket, sys, time
from thread import start_new_thread
class streamObject:
def __init__(self):
global data
data = ""
def start_stream(self, rot, t, w, h, fps):
global data
process = subprocess.Popen(['/usr/bin/raspivid', '-rot', str(rot), '-t', str(t), '-w', str(w), '-h', str(h), '-fps', str(fps), '-o', '-'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
nodata_counter = 0
while 1:
if process.poll() is None:
data += process.stdout.readline()
#data += process.stdout.read(256)
sys.stdout.write("buffered %i bytes. \r" % len(data))
sys.stdout.flush()
elif nodata_counter < 200:
nodata_counter += 1
time.sleep(0.1)
else:
break
def get_alldata(self):
global data
return data
def get_data(self, data_len):
global data
if len(data) > data_len:
temp = data[0:data_len]
data = data[data_len:len(data)]
return temp
else:
return None
def clear_cache(self):
global data
data = ""
def poll(self):
global data
try:
if len(data) != 0:
return None
else:
return 0
except:
return 0
def socket_connect(ip, port):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((ip, port))
return s
def socket_listen(ip, port):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((ip, port))
s.listen(1)
conn, addr = s.accept()
return conn
def socket_close(sock):
sock.close()
def send_stream(sock, streamObj, pcktSize):
timeout = 0
while 1:
if streamObj.poll() is None:
#data = streamObj.get_data(pcktSize)
data = streamObj.get_alldata()
streamObj.clear_cache()
if data is not None:
sock.send(data)
elif timeout < 200:
timeout += 1
time.sleep(0.1)
else:
break
stream = streamObject()
start_new_thread(stream.start_stream, (180, 0, 1280, 720, 20))
sock = socket_connect("xxxx.xxxx.xxxx.xxxx", 7777)
send_stream(sock, stream, 256)Here is a short video of the graphic bugs i encounter.
I am doing this over a direct ethernet connection at this time.
-
-
how to make omxh264enc output filler data ?
8 septembre 2020, par BlueWaterCrystalI require filler data from the encoder to artificially raise the bitrate to sustain constant bitrate.


normally x264enc does this but omx264enc doesn't seem to. even though there seems be a value within its code PROP_FILLER_DATA