OVH Cloud OVH Cloud

Putin de Mpeg

19 réponses
Avatar
mg
Salut,

j'arrive tjr pas à récuper les images d'une vidéo Mpeg1.
COmment il faut faire ce rtruc qui commencer a m'enmerder, lol.

merci dy songer.

9 réponses

1 2
Avatar
mg
J'ai l'impression que ce probleme est du au fait que les frames dans un mpeg
sont compressés. Il faut voir dans ce coté.
Je vois aussi qui tous le monde s'interese à ce type de probleme.
Pour l'instant, je peut récupérer les images d'un vidéo en format avi.

Merci àtous et on chercahnt bien, on doit bien trouver la solution .

"Gloops" a écrit dans le message de news:
42a60e9c$0$12661$
Ah, comme ça je commence à y croire plus.

J'ai un jour fait un programme de copie d'écran, qui ouvre Paint avec la
copie d'écran, pour que l'utilisateur puisse sélectionner la partie qui
l'intéresse.

Je ne sais pas si c'est le même domaine ?
____________________________________
Zoury a écrit, le 06/06/2005 20:36 :

>>mais que tu ne trouves rien du tout, alors là
>>franchement ça c'est bizarre.
>
>
> ooooh mais on a trouvé des pistes.. :
> http://groups.google.com/groups?hl=fr&lr=&thS779a9c76df991e&rnum=1
>


http://groups.google.com/groups?selm=%23Jh3%24QXZFHA.3572%40TK2MSFTNGP12.phx
.gbl
>
> Si le remplacement des pilotes n'a rien donné et le remplacer du format


de
> film (supposons vers AVI) n'est pas possible, alors j'ai l'impression


que la
> seule autre option serait d'aller lire directement dans la mémoire de la
> carte vidéo... je n'ai pas fait beaucoup de recherche en ce sens.


DirectX
> pourrait peut-être être employer pour y parvenir.. je ne sais juste pas


si
> on a accès à cet espace mémoire en lecture.
>
>



Avatar
Gloops
OK.
Me souviens pas vraiment de m'être frotté à des histoires de
compression, alors je ne vais pas trop faire de recherches dans mes
archives, sauf si vous pensez que ça peut aider.

Bon courage.
_________________________________
mg a écrit, le 08/06/2005 13:00 :

J'ai l'impression que ce probleme est du au fait que les frames dans un mpeg
sont compressés. Il faut voir dans ce coté.
Je vois aussi qui tous le monde s'interese à ce type de probleme.
Pour l'instant, je peut récupérer les images d'un vidéo en format avi.

Merci àtous et on chercahnt bien, on doit bien trouver la solution .


Avatar
Zoury
Salut ! :O)

Quel technique employais-tu pour faire la copie d'écran ?

Dans le cas actuel, même si on fait une copie d'écran sous Windows
(PrintScreen) lorsque l'image est sur pause, le résultat n'est pas ce peut
varier. L'image captée à la bonne taille, mais l'image affiché n'est pas
centrée et est affichée sur fond noir. Aussi si on bouge la fenêtre lorsque
l'écran est sur pause, on peut voir que l'image reste en place par rapport à
*l'écran*.. Comme si le picturebox servant à affiché le film n'était qu'une
fenêtre (viewport) directement branché sur la mémoire de la carte vidéo, se
qui pourrait expliquer pourquoi un PrintScreen ou l'emploi de BitBlt()
échoue lamentablement dans ce cas ci.

--
Cordialement
Yanick
MVP pour Visual Basic
"Gloops" a écrit dans le message de
news:42a6e126$0$1214$
OK.
Me souviens pas vraiment de m'être frotté à des histoires de
compression, alors je ne vais pas trop faire de recherches dans mes
archives, sauf si vous pensez que ça peut aider.

Bon courage.
_________________________________
mg a écrit, le 08/06/2005 13:00 :

> J'ai l'impression que ce probleme est du au fait que les frames dans un


mpeg
> sont compressés. Il faut voir dans ce coté.
> Je vois aussi qui tous le monde s'interese à ce type de probleme.
> Pour l'instant, je peut récupérer les images d'un vidéo en format avi.
>
> Merci àtous et on chercahnt bien, on doit bien trouver la solution .



Avatar
Gloops
Salut,

De tête je me rappelle qu'il y avait effectivement un BitBlt, mais ça
commence à remonter un peu, il faudrait que je fouille dans les archives ...

Je vais voir si j'ai ça là.
___________________________________
Zoury a écrit, le 08/06/2005 15:18 :

Salut ! :O)

Quel technique employais-tu pour faire la copie d'écran ?

Dans le cas actuel, même si on fait une copie d'écran sous Windows
(PrintScreen) lorsque l'image est sur pause, le résultat n'est pas ce peut
varier. L'image captée à la bonne taille, mais l'image affiché n'est pas
centrée et est affichée sur fond noir. Aussi si on bouge la fenêtre lorsque
l'écran est sur pause, on peut voir que l'image reste en place par rapport à
*l'écran*.. Comme si le picturebox servant à affiché le film n'était qu'une
fenêtre (viewport) directement branché sur la mémoire de la carte vidéo, se
qui pourrait expliquer pourquoi un PrintScreen ou l'emploi de BitBlt()
échoue lamentablement dans ce cas ci.



Avatar
Jacques93
Bonsoir mg,
mg a écrit :
J'ai l'impression que ce probleme est du au fait que les frames dans un mpeg
sont compressés. Il faut voir dans ce coté.
Je vois aussi qui tous le monde s'interese à ce type de probleme.
Pour l'instant, je peut récupérer les images d'un vidéo en format avi.

Merci àtous et on chercahnt bien, on doit bien trouver la solution .




Je crois que Zoury a indiqué la bonne piste, comme toujours ;-)
En désactivant l'accélération matérielle de la carte vidéo :

http://cjoint.com/?gittDMdMJz

C'est OK.

Ca ne résoud pas le problème, mais ca en confirme l'origine.

Je travaille avec ce code , est ce ok avec le(s) tien(s) ?

======================================================================= Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

Private Type PICTDESC
cbSize As Long
pictType As Long
hBitmap As Long
hPal As Long
End Type

Private Declare Function OleCreatePictureIndirect Lib "olepro32.dll" _
(lpPictDesc As PICTDESC, riid As Any, ByVal fOwn As Long, _
ipic As IPicture) As Long
Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hDC As
Long) As _
Long
Private Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hDC
As Long, _
ByVal nWidth As Long, ByVal nHeight As Long) As Long
Private Declare Function SelectObject Lib "gdi32" (ByVal hDC As Long, _
ByVal hObject As Long) As Long
Private Declare Function BitBlt Lib "gdi32" (ByVal hDCDest As Long, _
ByVal XDest As Long, ByVal YDest As Long, ByVal nWidth As Long, _
ByVal nHeight As Long, ByVal lScreenDC As Long, ByVal XSrc As Long, _
ByVal YSrc As Long, ByVal dwRop As Long) As Long
Private Declare Function DeleteDC Lib "gdi32" (ByVal hDC As Long) As Long
Private Declare Function GetWindowDC Lib "user32" (ByVal hWnd As Long)
As Long
Private Declare Function ReleaseDC Lib "user32" (ByVal hWnd As Long, _
ByVal hDC As Long) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hWnd As Long, _
lpRect As RECT) As Long



Private Sub Command1_Click()
Dim pic As IPictureDisp
Set pic = GetScreenSnapshot(Me.Picture1.hWnd)
Set Me.Picture2.Picture = pic
SavePicture pic, "C:Test.bmp"
End Sub

Function GetScreenSnapshot(Optional ByVal hWnd As Long) As IPictureDisp
Dim targetDC As Long
Dim hDC As Long
Dim tempPict As Long
Dim oldPict As Long
Dim wndWidth As Long
Dim wndHeight As Long
Dim pic As PICTDESC
Dim rcWindow As RECT
Dim guid(3) As Long

' provide the right handle for the desktop window
If hWnd = 0 Then hWnd = GetDesktopWindow

' get window's size
GetWindowRect hWnd, rcWindow
wndWidth = rcWindow.Right - rcWindow.Left
wndHeight = rcWindow.Bottom - rcWindow.Top
' get window's device context
targetDC = GetWindowDC(hWnd)

' create a compatible DC
hDC = CreateCompatibleDC(targetDC)

' create a memory bitmap in the DC just created
' the has the size of the window we're capturing
tempPict = CreateCompatibleBitmap(targetDC, wndWidth, wndHeight)
oldPict = SelectObject(hDC, tempPict)

' copy the screen image into the DC
BitBlt hDC, 0, 0, wndWidth, wndHeight, targetDC, 0, 0, vbSrcCopy

' set the old DC image and release the DC
tempPict = SelectObject(hDC, oldPict)
DeleteDC hDC
ReleaseDC GetDesktopWindow, targetDC

' fill the ScreenPic structure
With pic
.cbSize = Len(pic)
.pictType = 1 ' means picture
.hBitmap = tempPict
.hPal = 0 ' (you can omit this of course)
End With

' convert the image to a IpictureDisp object
' this is the IPicture GUID {7BF80980-BF32-101A-8BBB-00AA00300CAB}
' we use an array of Long to initialize it faster
guid(0) = &H7BF80980
guid(1) = &H101ABF32
guid(2) = &HAA00BB8B
guid(3) = &HAB0C3000
' create the picture,
' return an object reference right into the function result
OleCreatePictureIndirect pic, guid(0), True, GetScreenSnapshot

End Function

=============================================================================== --
Cordialement,

Jacques.
Avatar
Driss HANIB
Tiens voici le lien qui peut t'intéresser car il y a un prog sur vbfrance
pour récupéer les images d'une Webcam et en faire un fichier avi..

en fait ton bonheur est sur ce site
http://www.shrinkwrapvb.com/avihelp/avihelp.htm

regarde "Step 3" :Create a utility that gets each frame from the video
stream in an AVI file and saves it to a bitmap file

Je pense que cela peut inytresser beaucoup de monde..
Pour ma par je n'en suis pas là..
mais si quelqu'un développe un bout de classe ou autre cela m'intéresse

Driss
"mg" a écrit dans le message de
news:
Crois moi que j'ai chercher partout sans aucun résultat, ca doit qd mem
exister ce truc.
il y des softs qui le font mais payant et etant des developpeur c'est pas
notre genre de payer des truc qu'on peut le faire soit meme.

"Gloops" a écrit dans le message de news:
42a22ed0$0$1250$
> Ben alors, on commence à se lâcher ?
>
> As-tu trouvé quelque chose dans un newsgroup dont le nom comporte image
> ou picture ?
>
> Dis voir ce que tu as fait comme recherches, ça peut donner des idées à
> d'autres.
>
> mg a écrit, le 31/05/2005 21:03 :
>
> > Salut,
> >
> > j'arrive tjr pas à récuper les images d'une vidéo Mpeg1.
> > COmment il faut faire ce rtruc qui commencer a m'enmerder, lol.
> >
> > merci dy songer.
> >
> >
>




Avatar
Gloops
C'est vrai que ça ressemble fichtrement à une réponse à la question ...
Avatar
mg
cette solution consiste à récupérer une image à partir d'une vidéo AVI,
cette solution je l'ai déjà.
Mon probleme consiste à faire la meme chose mais avec une video MPEG.

Merci.

"Gloops" a écrit dans le message de news:
42a8a883$0$1217$
C'est vrai que ça ressemble fichtrement à une réponse à la question ...



Avatar
Gloops
Aaarghh ... C'était pour voir ceux qui suivaient, j'ai été recalé.
J'aurais aussi bien fait de la fermer, tiens.
_________________________________
mg a écrit, le 10/06/2005 17:20 :

cette solution consiste à récupérer une image à partir d'une vidéo AVI,
cette solution je l'ai déjà.
Mon probleme consiste à faire la meme chose mais avec une video MPEG.

Merci.

"Gloops" a écrit dans le message de news:
42a8a883$0$1217$

C'est vrai que ça ressemble fichtrement à une réponse à la question ...








1 2