Ich bin mir nicht sicher warum, aber avconv
scheint nicht zu rohen Video wie ich es erwarten würde.Unterschied zwischen ffmpeg und avconv für rawvideo image2pipe
Ich versuche Pipe ein Video von ffmpeg
in python
(schließlich möchte ich von x11grab
lesen, keine Videodatei). Es funktioniert gut auf meinem Macbook mit ffmpeg
, aber wenn ich avconv
auf Debian Jessie verwenden, schneidet der Stream früh ab!
Hier ist meine Grund Python, die this guide folgendes:
input_resolution_shape = (1280,800,3)
input_bytes = reduce(mul, input_resolution_shape, 1)
print input_bytes
# Prints 3072000
import subprocess as sp
command = [ FFMPEG_BIN, # This is either "avconv" or "ffmpeg".
'-i', 'test_video.mp4',
'-f', 'image2pipe',
'-pix_fmt', 'rgb24',
'-vcodec', 'rawvideo', '-']
pipe = sp.Popen(command, stdout = sp.PIPE, bufsize=10**8)
import numpy
for _ in range(100): # read 100 frames
# read 1280*800*3 bytes (= 1 frame)
raw_image = pipe.stdout.read(input_bytes)
# transform the byte read into a numpy array
image = numpy.fromstring(raw_image, dtype='uint8')
if image.size != 0:
print image.size
# Prints 1015808
auf dem Mac druckte die image.size
ist die gleiche wie die input_bytes
, 3072000. Aber auf debian, dann ist es 1015808. Irgendwelche Ideen, warum das sein könnte Ereignis?
Interessanterweise 3072000/1015808 ist nur etwa 3:
In [1]: 3072000./1015808.
Out[1]: 3.024193548387097
'acvonv' ist nicht äquivalent zu' ffmpeg'. Warum benutzt du nicht einfach 'ffmpeg'? Sie können einfach eine statische 'ffmpeg'-Binärdatei (http://johnvansickle.com/ffmpeg/) herunterladen und auf Ihr Skript verweisen. – LordNeckbeard
Weil ich auf Debian bin und ich kann nicht herausfinden, wie man ffmpeg richtig installiert. :( – NHDaly