ビデオファイルにセンサー情報(時系列)をスーパーインポーズしたいとします。私はPythonとOpenCVがうまくいくと思って基本を学び始めたので、私は考えることができる最も単純なおもちゃの例を作ることに決めました。ビデオを読み込んでフレームごとにコピーします。フレーム単位でビデオフレームをコピーするときにビデオ出力がありません
これは私のコードです:
期待import cv2
src = cv2.VideoCapture('input.mp4')
if not src.isOpened():
print("Error opening src")
quit()
width = int(src.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH))
height = int(src.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT))
fps = src.get(cv2.cv.CV_CAP_PROP_FPS)
fourcc = cv2.cv.CV_FOURCC(*'XVID')
dest = cv2.VideoWriter('output.avi', fourcc, fps, (height, width))
if not dest.isOpened():
print("Error opening dest")
quit()
ret, frame = src.read()
while ret:
dest.write(frame)
ret, frame = src.read()
dest.release()
src.release()
- :XviDのファイルとして
input.mp4
の正確なコピーoutput.avi
- ではを観測:
output.avi
は明らかにのみ含まれている5.6キロバイトのファイルですAVIヘッダー。それはmplayer
によって再現することはできず、どちらもcv2.VideoCapture
で読み取ることはできません。
これらは私の設定です:
- のDebian GNU/Linuxの9
- のPython 2.7.13
cv.__version__
リターン '2.4.9.1'- のFFmpeg 3.2.5-1
再現性のために、非常に短いYouTube動画をでダウンロードするコマンドラインがあります:
youtube-dl 'https://www.youtube.com/watch?v=RfkcI8dhfsQ' -o input.mp4
「読み取り」は実際には成功しましたか? –
そうだと思います。ループは51回実行されます。 (私の質問に記載されているサンプルのYouTubeビデオについて) – giusti
Open CV 2xがFFmpeg 3xと互換性がないという提案を読んだことがありますが、これが私の場合に関連するかどうかを確認する方法はわかりません。 – giusti