Auteur |
Message |
El Gringo
Newbie
Inscrit le: 10 Oct 2004
Messages: 12
|
Posté le:
Jeudi 10 Novembre 2005 12:59:56 |
  |
J'ai réussi a faire du streaming avec VLC, mais en décommentant une ligne de code. Ca ne marche toujours pas avec xine par contre, il me dit:
demux_avi: invalid avi chunk "movi" at pos 2052
play_internal ...done
input_http: read error 0
J'ai pas éssayé avec windows media player, mais le fait que ca marche avec VLC me convient car la plus part des gens le possède sous windows ou linux.
J'ai éssayé avec du Xvid à 750kbs en 384x288 + 48kbs mp3, et ca marche pas mal (J'ai une freebox, mais quelques soucis sur la ligne, on peut surement pousser à 850kbs avec une meilleur ligne)
Je vais envoyer le patch aux développeurs, mais pour l'instant la modif que j'ai faite ne m'a pas posé de problème. |
|
|
  |
 |
-pingus-
Invité
|
Posté le:
Jeudi 10 Novembre 2005 14:06:24 |
  |
xdtv allows to watch xvid and uncompressed files over http.
First, on linux you have to launch the streaming server:
use this command:
xdtv -rec_filename /dev/null -rec_http_port 63427 \
-rec_stream on -e record -rec_vcodec xvid -rec_chg on -rec_width 384 \
-rec_height 288 -rec_acodec UnCompressed -rec_display on -noplugin -noxawpopup
On linux you can catch the http stream with 2 different clients:
xdtv:
use this command: xdtv -noplugin -avi http://localhost:63427 (or your xdtv server address)
mplayer:
use this command: mplayer http://localhost:63427 (or your xdtv server address)
On windows only the mplayer client works.
You can download it here: http://mpf.dzm.hu/download.php
and use this command: mplayer http://localhost:63427 (or your xdtv server address)
be careful :
if you use xdtv to watch the stream on an other computer you must install it
with the xvid support and if you want to change channel from the distant xdtv you must copy your xdtvrc there. |
|
|
|
 |
El Gringo
Newbie
Inscrit le: 10 Oct 2004
Messages: 12
|
Posté le:
Jeudi 10 Novembre 2005 18:04:37 |
  |
Oui oui je sais bien. Mais ce que je dis c'est que j'ai réussi a faire fonctionner le streaming de xdtv avec VLC (J'ai qu'éssayé sous linux mais ca doit fonctionner sous windows aussi)
Pour les impatients:
décomentez la ligne 205 dans avilib.c comme ce qui suit:
202: /* The RIFF header */
203: OUT4CC ("RIFF");
204: if(!finished) {
205: OUTLONG(0x7fffffffL - 8); /* # of bytes to follow */
206: //OUTLONG(0);
207: } else {
208: OUTLONG(AVI->pos - 8);
209: } |
|
|
  |
 |
-pingus-
Invité
|
Posté le:
Jeudi 10 Novembre 2005 18:10:46 |
  |
|
|
 |
-pingus-
Invité
|
Posté le:
Jeudi 10 Novembre 2005 22:55:30 |
  |
pour Xine, j'ai réussi a faire marcher aussi, mais je ne comprends pas ce que je fais en fait. Va falloir que je demande a Alain pourquoi il avait fait ces modifs.
Donc si je résume: ca marche avec Xine, VLC, Mplayer & XdTV client désormais.
QQ teste pour Windows Media Player?
Code: |
diff -u -r1.27 avilib.c
--- src/avilib.c 12 Aug 2005 22:57:24 -0000 1.27
+++ src/avilib.c 10 Nov 2005 21:52:02 -0000
@@ -202,8 +202,8 @@
/* The RIFF header */
OUT4CC ("RIFF");
if(!finished) {
- //OUTLONG(0x7fffffffL - 8); /* # of bytes to follow */
- OUTLONG(0);
+ OUTLONG(0x7fffffffL - 8); /* # of bytes to follow */
+ //OUTLONG(0);
} else {
OUTLONG(AVI->pos - 8);
}
@@ -239,7 +239,8 @@
}
OUTLONG(flag); /* Flags */
if(!finished) {
- OUTLONG(0);
+ OUTLONG(0x7fffffffL); /* TotalFrames */
+ //OUTLONG(0);
} else {
OUTLONG(AVI->video_frames); /* TotalFrames */
}
@@ -278,7 +279,8 @@
if(finished) {
OUTLONG(AVI->video_frames); /* Length */
} else {
- OUTLONG(0);
+ OUTLONG(0x7fffffffL);
+ //OUTLONG(0);
}
OUTLONG(0); /* SuggestedBufferSize */
OUTLONG(-1); /* Quality */
@@ -341,7 +343,8 @@
}
OUTLONG(0); /* Start */
if(!finished) {
- OUTLONG(0);
+ OUTLONG(0x7fffffffL); /* Length */
+ //OUTLONG(0);
} else {
if(!AVI->audio_vbr) {
OUTLONG(AVI->audio_bytes); /* Length */
@@ -365,8 +368,8 @@
OUTLONG(AVI->a_rate);
}
OUTLONG(0); /* Start */
- //OUTLONG(0x7fffffffL); /* Length */
- OUTLONG(0);
+ OUTLONG(0x7fffffffL); /* Length */
+ //OUTLONG(0);
OUTLONG(0); /* SuggestedBufferSize */
OUTLONG(-1); /* Quality */
if(!AVI->audio_vbr) {
@@ -448,8 +451,8 @@
nhb=put_header(AVI,AVI_header,0,0);
/* Start the movi list */
OUT4CC ("LIST");
- //OUTLONG(0x7fffffff - HEADERBYTES + 4); /* Length of list in bytes */
- OUTLONG(0);
+ OUTLONG(0x7fffffff - HEADERBYTES + 4); /* Length of list in bytes */
+ //OUTLONG(0);
OUT4CC ("movi");
/* Output the header, truncate the file to the number of bytes
@@ -475,8 +478,8 @@
nhb=put_header(AVI,AVI_header,0,0);
/* Start the movi list */
OUT4CC ("LIST");
- //OUTLONG(0x7fffffff - HEADERBYTES + 4); /* Length of list in bytes */
- OUTLONG(0);
+ OUTLONG(0x7fffffff - HEADERBYTES + 4); /* Length of list in bytes */
+ //OUTLONG(0);
OUT4CC ("movi");
return nhb+12;
} |
Pingus |
|
|
|
 |
-pingus-
Invité
|
Posté le:
Vendredi 11 Novembre 2005 09:11:45 |
  |
en passant je viens de repérer un autre bug. Si on passe un maxsize >=2048 alors:
problème.
cela semble provenir de ce bout de code:
if(maxsize)
AVI->maxlen=maxsize<<20;
else
avi_check_maxlen(AVI);
qu'il faut changer par:
if(maxsize)
AVI->maxlen=(long long)maxsize<<20;
else
avi_check_maxlen(AVI);
et la ca fonctionne.....
A tester également.
Pingus
PS: je suis quand meme embetter par le patch ci dessus. En effet un avi peut avoir comme taille 4096 Mo max. et 0x7fffffff en hexa signifie 2048 en décimal..... |
|
|
|
 |
-pingus-
Invité
|
Posté le:
Dimanche 13 Novembre 2005 16:27:12 |
  |
de retour de week end:
je vous propose ca finalement (a tester egalement sous windows avec WMP)
Code: |
diff -u -r1.27 -r1.28
--- src/avilib.c 12 Aug 2005 22:57:24 -0000 1.27
+++ src/avilib.c 13 Nov 2005 15:08:43 -0000 1.28
@@ -45,6 +45,7 @@
#include <string.h>
#include <errno.h>
#include <pthread.h>
+#include <limits.h>
#include <sys/stat.h>
#include "avilib.h"
#include "http.h"
@@ -67,7 +68,7 @@
/* HEADERBYTES: The number of bytes to reserve for the header */
#define HEADERBYTES 2048
-
+#define AVI_MAX_LEN (UINT_MAX-(1<<20)*16-HEADERBYTES)
#define PAD_EVEN(x) ( ((x)+1) & ~1 )
@@ -190,20 +191,22 @@
static int put_header(avi_t *AVI,unsigned char *AVI_header,int finished,
int hasIndex) {
int njunk, sampsize, ms_per_frame,flag;
- int hdrl_start, strl_start;
+ int movi_len, hdrl_start, strl_start;
long nhb;
+ //assume max size
+ movi_len = AVI_MAX_LEN - HEADERBYTES + 4;
+
/* Calculate Microseconds per frame */
ms_per_frame = (double)AVI->fps_num/AVI->fps_den + 0.5;
-
+
/* Prepare the file header */
nhb = 0;
-
+
/* The RIFF header */
OUT4CC ("RIFF");
if(!finished) {
- //OUTLONG(0x7fffffffL - 8); /* # of bytes to follow */
- OUTLONG(0);
+ OUTLONG(movi_len); // assume max size
} else {
OUTLONG(AVI->pos - 8);
}
@@ -229,7 +232,8 @@
OUT4CC ("avih");
OUTLONG(56); /* # of bytes to follow */
OUTLONG(ms_per_frame); /* Microseconds per frame */
- OUTLONG(10000000); /* MaxBytesPerSec, I hope this will never be used */
+ //OUTLONG(10000000); /* MaxBytesPerSec, I hope this will never be used */
+ OUTLONG(0);
OUTLONG(0); /* PaddingGranularity (whatever that might be) */
/* Other sources call it 'reserved' */
flag = AVIF_WASCAPTUREFILE;
@@ -437,8 +441,12 @@
static int avi_init_header(avi_t *AVI)
{
unsigned char AVI_header[HEADERBYTES];
+ int movi_len;
long nhb;
+ //assume max size
+ movi_len = AVI_MAX_LEN - HEADERBYTES + 4;
+
if(AVI->init)
return 0;
@@ -448,8 +456,7 @@
nhb=put_header(AVI,AVI_header,0,0);
/* Start the movi list */
OUT4CC ("LIST");
- //OUTLONG(0x7fffffff - HEADERBYTES + 4); /* Length of list in bytes */
- OUTLONG(0);
+ OUTLONG(movi_len); /* Length of list in bytes */
OUT4CC ("movi");
/* Output the header, truncate the file to the number of bytes
@@ -471,12 +478,16 @@
int AVI_get_header(avi_t *AVI, unsigned char *AVI_header) {
+ int movi_len;
int nhb;
nhb=put_header(AVI,AVI_header,0,0);
+
+ //assume max size
+ movi_len = AVI_MAX_LEN - HEADERBYTES + 4;
+
/* Start the movi list */
OUT4CC ("LIST");
- //OUTLONG(0x7fffffff - HEADERBYTES + 4); /* Length of list in bytes */
- OUTLONG(0);
+ OUTLONG(movi_len); /* Length of list in bytes */
OUT4CC ("movi");
return nhb+12;
}
@@ -558,7 +569,7 @@
if(strcmp(filename,"/dev/null")==0) AVI->seekable=-1;
if(maxsize)
- AVI->maxlen=maxsize<<20;
+ AVI->maxlen=(long long)maxsize<<20;
else
avi_check_maxlen(AVI);
|
Bye Pingus |
|
|
|
 |
nicotte2
Invité
|
Posté le:
Dimanche 13 Novembre 2005 19:37:35 |
  |
je confirme que ça marche avec VLC sous windows. Par contre WMP ne marche toujours pas .... |
|
|
|
 |
nicotte2
Invité
|
Posté le:
Dimanche 13 Novembre 2005 20:25:52 |
  |
Code: |
PS: je suis quand meme embetter par le patch ci dessus. En effet un avi peut avoir comme taille 4096 Mo max. et 0x7fffffff en hexa signifie 2048 en décimal.....
|
je croyais que la taille max d'un avi c'est 2Go pas 4 ... me trompe-je ? |
|
|
|
 |
El Gringo
Newbie
Inscrit le: 10 Oct 2004
Messages: 12
|
Posté le:
Lundi 14 Novembre 2005 18:33:59 |
  |
Ca ne sera pas forcément facile de le faire fonctionné avec wmp, apparement il est capricieux au niveau streaming. Ca se trouve il ne fonctionne qu'avec le format ASF.
Sous VLC seul le format ASF fonctionne avec WMP. |
|
|
  |
 |
-pingus-
Invité
|
Posté le:
Samedi 19 Novembre 2005 15:38:24 |
  |
asf avec quels codecs audio et video? |
|
|
|
 |
jrevi
Posteur occasionnel
Inscrit le: 05 Déc 2002
Messages: 37
|
Posté le:
Vendredi 25 Novembre 2005 09:58:26 |
  |
Bonjours,
j'ai vu ds les tarball de xdtv un fichier xdtv 2.3 !!!!! c'est pour bientôt ??
Cette version intergre-t-elle deja le streaming mpeg2 TS ?
Merci pour votre super boulot
A+
jrevi |
|
|
  |
 |
-pingus-
Invité
|
Posté le:
Vendredi 25 Novembre 2005 11:37:17 |
  |
|
|
 |
jrevi
Posteur occasionnel
Inscrit le: 05 Déc 2002
Messages: 37
|
Posté le:
Vendredi 25 Novembre 2005 16:54:04 |
  |
OK, il me semble que j'ai vu un ebuile pour cette version donc je testerais le mpeg2 ts des que possible.
Je ne ferais le test qu'avec vlc.... et une freebox
A+
----EDIT-----
Petit problème avec l'ebuild 2.3.0 ou avec SF.net :
Code: |
>>> Downloading http://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo/distfiles/libxdtv-theme-carbone-ja-1.3.0.tar.gz
--17:23:23-- http://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo/distfiles/libxdtv-theme-carbone-ja-1.3.0.tar.gz
=> `/usr/portage/distfiles/libxdtv-theme-carbone-ja-1.3.0.tar.gz'
Résolution de ftp.belnet.be... 193.190.198.20, 2001:6a8:3c80:0:203:baff:fe39:f931
Connexion vers ftp.belnet.be|193.190.198.20|:80...connecté.
requête HTTP transmise, en attente de la réponse...404 Not Found
17:23:23 ERREUR 404: Not Found.
No digest file available and download failed.
|
Quelque soit la langue, ca marche pas.
Faitent moi signe quand se sera résolu.. j'ai pas envi de l'installer avec les sources vu que tout est bien propre pour l'instant...
A+ |
|
|
  |
 |
-pingus-
Invité
|
Posté le:
Vendredi 25 Novembre 2005 19:11:45 |
  |
Tu sais vraiment ce que tu fais quand tu lances ton truc bidule d'ebuild?
On dirait pas. Donc je vais t'apprendre qqchose:
dans notre ebuild il y a ca:
DOWNLOADS_URL="mirror://sourceforge/xawdecode"
mirroir ca veut dire ce que ca veut dire non? et il n'y a rien sur les miroirs, non, puisque on a pas releaser, non?
remplace donc cette ligne par:
DOWNLOADS_URL="http://xawdecode.sourceforge.net/nightly-tarball"
ou un truc comme ca
ca devrait marcher (j'(ai pas de gentoo, je peux donc pas tester, donc si c'est pas le cas tu postes ici svp)
Pingus |
|
|
|
 |
jrevi
Posteur occasionnel
Inscrit le: 05 Déc 2002
Messages: 37
|
Posté le:
Vendredi 25 Novembre 2005 19:53:17 |
  |
Oui je sais parfaitement ce que je fais... par contre je ne connais pas la structure de SF.net !!!! mais si tu trouves que je n suis pas assez bon pour vous aidez... je vous laisse... je ne voudrai pas être un boulet ...
ceci dit :
si jamais tu veux ecore des retour j'ai une erreur de compile... il semble qu'il manque des fichiers dans les sources :
Code: |
>>> emerge (1 of 1) media-tv/xdtv-2.3.0 to /
>>> md5 files ;-) xdtv-2.3.0.ebuild
>>> md5 files ;-) files/digest-xdtv-2.3.0
>>> md5 src_uri ;-) xdtv-2.3.0.tar.gz
>>> md5 src_uri ;-) libxdtv-i18n-fr-1.3.0.tar.gz
>>> md5 src_uri ;-) libxdtv-theme-aqua-fr-1.3.0.tar.gz
>>> md5 src_uri ;-) libxdtv-theme-carbone-fr-1.3.0.tar.gz
rm: ne peut enlever `/usr/share/fonts/xdtv/fonts.cache-1': Aucun fichier ou répertoire de ce type
>>> Unpacking source...
>>> Unpacking xdtv-2.3.0.tar.gz to /var/tmp/portage/xdtv-2.3.0/work
>>> Unpacking libxdtv-i18n-fr-1.3.0.tar.gz to /var/tmp/portage/xdtv-2.3.0/work
>>> Unpacking libxdtv-theme-aqua-fr-1.3.0.tar.gz to /var/tmp/portage/xdtv-2.3.0/work
>>> Unpacking libxdtv-theme-carbone-fr-1.3.0.tar.gz to /var/tmp/portage/xdtv-2.3.0/work
autoreconf-2.59: `configure.ac' or `configure.in' is required
!!! ERROR: media-tv/xdtv-2.3.0 failed.
!!! Function src_unpack, Line 83, Exitcode 1
!!! autoreconf failed
!!! If you need support, post the topmost build error, NOT this status message.
|
|
|
|
  |
 |
-pingus-
Invité
|
Posté le:
Vendredi 25 Novembre 2005 21:05:40 |
  |
ok. ca doit provenir de ces deux lignes:
Code: |
autoreconf || die "autoreconf failed"
libtoolize --copy --force || die "libtoolize failed"
|
vire les du ebuild. Comme j'ai mis à jour l'ebuild a "l'aveugle" .... il est tout a fait possible qu'il y ait des problèmes
En virant les deux lignes ca devrait passer.
Dit moi svp.
Pingus |
|
|
|
 |
jrevi
Posteur occasionnel
Inscrit le: 05 Déc 2002
Messages: 37
|
Posté le:
Samedi 26 Novembre 2005 11:30:42 |
  |
En virant les deux lignes ca commence à compiler par contre, j'ai une erreur de compile plus loin :
Code: |
f i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../alevt -Wall -D_REENTRANT -O2 -march=athlon-xp -pipe -DPREFIX='"/usr"' -D_LARGEFILE64_SOURCE -I/lib/modules/2.6.13-gentoo-r5/build/include -MT divx.o -MD -MP -MF ".deps/divx.Tpo" \
-c -o divx.o `test -f 'divx.c' || echo './'`divx.c; \
then mv -f ".deps/divx.Tpo" ".deps/divx.Po"; \
else rm -f ".deps/divx.Tpo"; exit 1; \
fi
divx.c: Dans la fonction « generic_file_write_frame »:
divx.c:2965: attention : implicit declaration of function `av_rescale_q'
divx.c:2965: error: invalid type argument of `->'
divx.c:2965: error: invalid type argument of `->'
divx.c:2966: error: invalid type argument of `->'
divx.c: Dans la fonction « generic_file_write_audio »:
divx.c:3010: error: invalid type argument of `->'
divx.c:3010: error: invalid type argument of `->'
divx.c: Dans la fonction « generic_open_output_file »:
divx.c:3110: error: incompatible types in affectation
divx.c:3121: error: incompatible types in affectation
make[2]: *** [divx.o] Erreur 1
make[2]: Leaving directory `/var/tmp/portage/xdtv-2.3.0/work/xdtv-2.3.0/src'
make[1]: *** [all-recursive] Erreur 1
make[1]: Leaving directory `/var/tmp/portage/xdtv-2.3.0/work/xdtv-2.3.0'
make: *** [all] Erreur 2
!!! ERROR: media-tv/xdtv-2.3.0 failed.
!!! Function src_compile, Line 121, Exitcode 2
!!! Compilation failed.
!!! If you need support, post the topmost build error, NOT this status message.
|
A+
jrevi |
|
|
  |
 |
-pingus-
Invité
|
Posté le:
Samedi 26 Novembre 2005 11:59:17 |
  |
je crois savoir ce que c'est.
quel est ta version de ffmpeg svp.
Pingus |
|
|
|
 |
jrevi
Posteur occasionnel
Inscrit le: 05 Déc 2002
Messages: 37
|
Posté le:
Samedi 26 Novembre 2005 12:00:48 |
  |
-pingus- a écrit: |
je crois savoir ce que c'est.
quel est ta version de ffmpeg svp.
Pingus |
version 0.4.9_p20050226-r5
jrevi |
|
|
  |
 |
|