
Recherche avancée
Médias (1)
-
The pirate bay depuis la Belgique
1er avril 2013, par
Mis à jour : Avril 2013
Langue : français
Type : Image
Autres articles (87)
-
Organiser par catégorie
17 mai 2013, parDans MédiaSPIP, une rubrique a 2 noms : catégorie et rubrique.
Les différents documents stockés dans MédiaSPIP peuvent être rangés dans différentes catégories. On peut créer une catégorie en cliquant sur "publier une catégorie" dans le menu publier en haut à droite ( après authentification ). Une catégorie peut être rangée dans une autre catégorie aussi ce qui fait qu’on peut construire une arborescence de catégories.
Lors de la publication prochaine d’un document, la nouvelle catégorie créée sera proposée (...) -
Récupération d’informations sur le site maître à l’installation d’une instance
26 novembre 2010, parUtilité
Sur le site principal, une instance de mutualisation est définie par plusieurs choses : Les données dans la table spip_mutus ; Son logo ; Son auteur principal (id_admin dans la table spip_mutus correspondant à un id_auteur de la table spip_auteurs)qui sera le seul à pouvoir créer définitivement l’instance de mutualisation ;
Il peut donc être tout à fait judicieux de vouloir récupérer certaines de ces informations afin de compléter l’installation d’une instance pour, par exemple : récupérer le (...) -
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
Sur d’autres sites (6319)
-
FFmpeg : undefined references to av_frame_alloc()
6 août 2014, par dontrythisathomeI want to get into FFmpeg developing and i started following these samples tutorial here : here
I started with the first tutorial - tutorial01.c - but i run into this problem ’undefined references to av_frame_alloc()’.
I’m on Ubuntu 12.04 LTS.
This is my program :
/*
* File: main.c
* Author: dontrythisathome
*
* Created on 3 giugno 2014, 23.02
*/
#include
#include <libavcodec></libavcodec>avcodec.h>
#include <libavformat></libavformat>avformat.h>
#include <libavutil></libavutil>frame.h>
#include <libswscale></libswscale>swscale.h>
/*
*
*/
void SaveFrame(AVFrame *pFrame, int width, int height, int iFrame)
{
FILE *pFile;
char szFilename[32];
int y;
//Apre il file
sprintf(szFilename, "frame%d.ppm", iFrame);
pFile=fopen(szFilename, "wb");
if(pFile==NULL)
{return; }
//Scrive l'intestazione del file ( Larghezza x Altezza su video)
fprintf(pFile, "P6\n%d %d\n255\n", width, height);
//Scrive i data pixel
for(y=0; ydata[0]+y*pFrame->linesize[0], 1, width*3, pFile);
}
//Chiude il file
fclose(pFile);
}
/*
*
*/
/*Main Function*/
int main(int argc, char *argv[])
{
AVFormatContext *pFormatCtx;
int i, videoStreamIdx;
AVCodecContext *pCodecCtx;
AVCodec *pCodec;
AVFrame *pFrame;
AVFrame *pFrameRGB;
AVPacket packet;
int frameFinished;
int numBytes;
uint8_t *buffer;
static struct SwsContext *img_convert_ctx;
if(argc < 2){
printf("Inserisci un file video\n");
return -1;
}
//Registra tutti i formati e i codec
av_register_all();
//Apre il file video
if(avformat_open_input(&pFormatCtx, argv[1], NULL, NULL) != 0)
{return -1;} //Impossibile aprire il file
//Recupera le informazioni dello stream
if(avformat_find_stream_info(pFormatCtx, NULL) < 0)
{return -1;} // Couldn't find stream information
//Versa le informazioni del file sullo standard error
av_dump_format(pFormatCtx, 0, argv[1], 0);
//Trova il primo stream video
videoStreamIdx=-1;
for(i=0; inb_streams; i++)
{
if(pFormatCtx->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO)
{ videoStreamIdx=i;
break;}
}
if(videoStreamIdx==-1)
return -1; // Impossibile trovare lo stream video
// Punta al contenuto del codec per lo stream video
pCodecCtx = pFormatCtx->streams[videoStreamIdx]->codec;
// Trova il decoder per lo stream video
pCodec = avcodec_find_decoder(pCodecCtx->codec_id);
if(pCodec==NULL)
{
fprintf(stderr, "Codec Non Supportato!\n");
return -1; //Impossibile trovare il codec
}
//Apre il codec
if(avcodec_open2(pCodecCtx, pCodec, NULL) < 0)
{return -1;} //Impossibile aprire il codec
//Alloca il frame video
pFrame = av_frame_alloc();
//Alloca una struct AVFrame
pFrameRGB = av_frame_alloc();
if(pFrameRGB==NULL)
{return -1;}
//Determina la grandezza necessaria per il buffer e lo alloca
numBytes = avpicture_get_size(PIX_FMT_RGB24,
pCodecCtx->width,
pCodecCtx->height);
buffer = (uint8_t *) av_malloc(numBytes*sizeof(uint8_t));
//Assegna le parti appropriate del buffer sulla superficie dell'immagine in pFrameRGB
//Tenere presente che pFrameRGB è un AVFrame, ma AVFrame è una superset di AVPicture
avpicture_fill((AVPicture *)pFrameRGB, buffer, PIX_FMT_RGB24, pCodecCtx->width, pCodecCtx->height);
int w = pCodecCtx->width;
int h = pCodecCtx->height;
img_convert_ctx = sws_getContext(w, h, pCodecCtx->pix_fmt,
w, h, PIX_FMT_RGB24,
SWS_LANCZOS, NULL, NULL, NULL);
//Legge i frame e salva i primi 5 frame su disco
i=0;
while((av_read_frame(pFormatCtx, &packet)>=0) && (i<5))
{
//Questo è il packet dello stream video?
if(packet.stream_index==videoStreamIdx)
{
//Decodifica il frame video
avcodec_decode_video2(pCodecCtx, pFrame, &frameFinished, &packet);
//Si è riusiciti ad ottenere il frame video?
if(frameFinished)
{
i++;
sws_scale(img_convert_ctx, (const uint8_t * const *)pFrame->data,
pFrame->linesize, 0, pCodecCtx->height,
pFrameRGB->data, pFrameRGB->linesize);
SaveFrame(pFrameRGB, pCodecCtx->width, pCodecCtx->height, i);
}
}
//Libera il pacchetto che era allocato da av_read_frame
av_free_packet(&packet);
}
//Libera l'immagine RGB
av_free(buffer);
av_free(pFrameRGB);
//Libera il frame YUV
av_free(pFrame);
//Chiude il codec
avcodec_close(pCodecCtx);
//Chiude il file video
avformat_close_input(&pFormatCtx);
/*FINE PROGRAMMA*/
return 0;
}This is the build output :
"/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
make[1]: ingresso nella directory "/home/dontrythisathome/Programmazione/C-C++/SimpleMediaPlayerForAndroid"
"/usr/bin/make" -f nbproject/Makefile-Debug.mk dist/Debug/GNU-Linux-x86/simplemediaplayerforandroid
make[2]: ingresso nella directory "/home/dontrythisathome/Programmazione/C-C++/SimpleMediaPlayerForAndroid"
mkdir -p dist/Debug/GNU-Linux-x86
gcc -o dist/Debug/GNU-Linux-x86/simplemediaplayerforandroid build/Debug/GNU-Linux-x86/main.o -L/usr/lib/x86_64-linux-gnu -lavformat -lavcodec -lavutil -lswscale -lz -lbz2
build/Debug/GNU-Linux-x86/main.o: In function `main':
/home/dontrythisathome/Programmazione/C-C++/SimpleMediaPlayerForAndroid/main.c:105: undefined reference to `av_frame_alloc'
/home/dontrythisathome/Programmazione/C-C++/SimpleMediaPlayerForAndroid/main.c:108: undefined reference to `av_frame_alloc'
collect2: ld returned 1 exit status
make[2]: *** [dist/Debug/GNU-Linux-x86/simplemediaplayerforandroid] Errore 1
make[2]: uscita dalla directory "/home/dontrythisathome/Programmazione/C-C++/SimpleMediaPlayerForAndroid"
make[1]: *** [.build-conf] Errore 2
make[1]: uscita dalla directory "/home/dontrythisathome/Programmazione/C-C++/SimpleMediaPlayerForAndroid"
make: *** [.build-impl] Errore 2
BUILD FAILED (exit value 2, total time: 143ms)I also linked the correct library path and headers path because there is no error with that.
But when i try to build the program from the terminal with these commands :
gcc -o prog1 /home/dontrythisathome/Programmazione/C-C++/SimpleMediaPlayerForAndroid/main.c -lavformat -lavcodec -lavutil -lswscale -lz -lbz2
And the output is different :
/home/dontrythisathome/Programmazione/C-C++/SimpleMediaPlayerForAndroid/main.c:11:29: fatal error: libavutil/frame.h: File o directory non esistente
compilation terminated.The output says that there is no file or directory existing.
What is the problem ? -
Reduce HLS latency from +30 seconds
4 juin 2014, par RickUbuntu 12.04
nginx 1.2.4
avconv -version
avconv version 0.8.10-4:0.8.10-0ubuntu0.12.04.1, Copyright (c) 2000-2013 the Libav developers
built on Feb 6 2014 20:56:59 with gcc 4.6.3
avconv 0.8.10-4:0.8.10-0ubuntu0.12.04.1
libavutil 51. 22. 2 / 51. 22. 2
libavcodec 53. 35. 0 / 53. 35. 0
libavformat 53. 21. 1 / 53. 21. 1
libavdevice 53. 2. 0 / 53. 2. 0
libavfilter 2. 15. 0 / 2. 15. 0
libswscale 2. 1. 0 / 2. 1. 0
libpostproc 52. 0. 0 / 52. 0. 0I’m using avconv and nginx to create an HLS stream but right now my latency is regularly well over 30 seconds. After much reading I am aware that HLS has built in latency and that 10s is expected and even preferred but 30s seems quite extreme.
I’ve seen a lot of discussion on the nginx-rtmp google group, this thread in particular had a lot of suggestions. I have attempted to reduce solve my issue by reducing the
hls_fragment
and thehls_playlist_length
but they haven’t had a significant effect.nginx.conf :
#user nobody;
worker_processes 1;
error_log logs/error.log debug;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8888;
server_name localhost;
add_header 'Access-Control-Allow-Origin' "*";
location /hls {
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root /tmp;
}
# rtmp stat
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
# you can move stat.xsl to a different location
root /usr/build/nginx-rtmp-module;
}
# rtmp control
location /control {
rtmp_control all;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
rtmp {
server {
listen 1935;
ping 30s;
notify_method get;
application myapp {
live on;
hls on;
hls_path /tmp/hls;
hls_base_url http://x.x.x.x:8888/hls/;
hls_sync 2ms;
hls_fragment 2s;
#hls_variant _low BANDWIDTH=160000;
#hls_variant _mid BANDWIDTH=320000;
#hls_variant _hi BANDWIDTH=640000;
}
}
}avconv command :
avconv -r 30 -y -f image2pipe -codec:v mjpeg -i - -f flv -codec:v libx264 -profile:v baseline -preset ultrafast -tune zerolatency -an -f flv rtmp://127.0.0.1:1935/myapp/mystream
-
Setting start date in gource
5 juin 2014, par rfc1484I’m trying to run gource from a certain date, but it reports me a ’codec not found error’.
This is the command without a start date :
gource -1280x720 --seconds-per-day 1 --stop-at-end --hide filenames --hide files --git-branch master --camera-mode track --output-ppm-stream - | ffmpeg -y -b 3000k -r 25 -f image2pipe -vcodec ppm -i - test.mp4
Which works fine and generates the .mp4 file as expected.
This is the command with a start date :
gource -1280x720 --start-date '2014-01-01' --seconds-per-day 1 --stop-at-end --hide filenames --hide files --git-branch master --camera-mode track --output-ppm-stream - | ffmpeg -y -b 3000k -r 25 -f image2pipe -vcodec ppm -i - test.mp4
Which doesn’t work and generates the following error message :
[image2pipe @ 0x78a600] Could not find codec parameters (Video : ppm)
Any suggestions on how to fix this ?