2014-06-23 20 views
7

Video akışının her bir byte'ını web kamerasından yakalamam gerekiyor - komut satırı-ffmpeg'i codec ile sıkıştırmak için.Web kamerasından tüm bayt akışını, kodlayıcı tarafından ffmpeg ile sıkıştırıldıktan sonra alın.

Bu yüzden bir şekilde ffmpeg komut satırının benzerini ve çıktı akışını VB6 veya VB.net tarafından yazılan programıma alma stratejisiyle biraz aydınlatabilir misiniz? (Her bayt ile manipüle etmem gerekiyor!) Herhangi bir öneriyi takdirle karşılayın.


Güncelleme: Bu tasarruf dosyasının içeriğini okumak için benim programı kullanmak sabit disk üzerinde ve aynı zamanda "avi" dosyası olarak çıktı kaydetmek mümkün olup olmadığını merak ediyorum. Dosya kaydedilirken (eklendiğinde) aldığım "avi dosyasının bir parçasını" oynatabilir miyim? & okuma (& kayıt) "avi" dışında aynı anda yazma için herhangi bir daha iyi dosya formatı var mı?

Ya da daha iyi/daha hızlı bir çözüm?

+1

Tamamen emin değilsiniz, ancak DirectShow filtresini kullanmanız gerekir. Bu ses yakalamak için nasıl: 'ffmpeg -nostats -f dshow -i ses =" S/PDIF (M-Ses Delta AP 192) "-acodec mp3 -f mp3 -ab' – Brad

+0

Teşekkürler! Bazılarının çıktıyı url olarak kullandığını görüyorum ("192.168.1.123: 8090" gibi), fakat akışı programıma aktarmak istiyorum, nasıl biliyor musun? –

+0

STDIO kullanın. Son parametre '-' olmalıdır. – Brad

cevap

1

Pelase sayfa boyunca ilerleyiniz https://trac.ffmpeg.org/wiki/Capture/Webcam Web kamerası videosunu ffmpeg kullanarak nasıl yakalayacağınız açıkça belirtilmektedir.
Evet, avi akışını diske kaydedip aynı anda okuyabiliyorsunuz, eminim ki linux mümkün olabiliyor, çünkü dosya kilitleme yok.
Ya da bir boruya yazabilir ve boru çerçevesinden çerçeve ile okuyabilirsiniz.
Videoyu yakalamak ve bir boruya yazmak için Linux örneği./Dev/video0

FFmpeg'den okuma
f V4L2 -framerate 25 -video_size 640x480 -i/dev/video0 -f rawvideo -pix_fmt YUV420P pipe1.

Bu komutu çalıştırmak için önce pipe1 oluşturmalısınız, şimdi bu borudan okuyabilirsiniz. Piple, veri okunurken akacak olan linux'ta FIFO veri uzantısıdır. Bu sizin ihtiyacınıza uygun olacaktır.

+0

Sorunu Windows'ta çözdüm, ancak cevabınız diğer birçok linux için de yararlıdır. –

+0

@ vantrung-cuncon Ayrıca Windows kullanıcıları için bir yanıt da sağlayabilirsiniz (ve sağlanan Satyam'ın da Windows örnekleri vardır). – LordNeckbeard

İlgili konular