簡體   English   中英

openCV - ffmpeg H264 和 Webm 錯誤

[英]openCV - ffmpeg H264 and Webm error

我安裝了 ubuntu 16.04 LTS 和 OpenCV 3.4.0(Intel i5 和 AMD 顯卡),我需要創建一個瀏覽器支持的視頻,該視頻可在瀏覽器中播放。

如果我使用的是 H264,我會得到

OpenCV: FFMPEG: tag 0x34363248/'H264' is not supported with codec id 27 and format 'mp4 / MP4 (MPEG-4 Part 14)' OpenCV: FFMPEG: fallback to use tag 0x31637661/'avc1' [h264_nvenc @ 0x7f4e0407f5e0] Cannot load libcuda.so.1 Could not open codec 'h264_nvenc': Unspecified error

如果我使用 webm VP8

OpenCV: FFMPEG: tag 0x30385056/'VP80' is not supported with codec id 139 and format 'webm / WebM'

如果我使用 webm VP9

OpenCV: FFMPEG: tag 0x30395056/'VP90' is not supported with codec id 167 and format 'webm / WebM'

我正在使用此代碼進行轉換。

    fourcc = cv2.VideoWriter_fourcc(*'VP80')
    frame = cv2.imread(movements[0].file_path)
    height, width, _ = frame.shape
    event_video_name = video.file_name.split('.')[0] + '_eventvideo.webm'
    event_video = cv2.VideoWriter(path + event_video_name, fourcc, 5, (width, height))

    for _, image in enumerate(movements):
        image = Image.objects.get(id=image.id)
        frame = cv2.imread(image.file_path)
        event_video.write(frame)
    event_video.release()

這一周我遇到了同樣的問題。 在探索並浪費了大量時間之后,他們都沒有為我工作。 https://developer.mozilla.org/en-US/docs/Web/Media/Formats請仔細閱讀這篇文章,它肯定會對你們有所幫助,因為它對我有很大幫助,它將提供有關編解碼器及其適用的詳細知識容器類型及其瀏覽器兼容性。

我建議請仔細閱讀這篇文章。

在嘗試了許多合適的編解碼器組合后,容器類型為“webm”的編解碼器“VP90”對我有用。 我使用 Ubuntu 18.04 LTS 和 Python3 和“opencv-python 4.2.0.34”

fourcc =  cv2.VideoWriter_fourcc(*'VP90')
            self.writer = cv2.VideoWriter('videoName.webm', fourcc, 20, (self.im_width,self.im_height)) 

我仍然發現此錯誤消息的一些方法,但如果發生,請忽略此消息。 因為上面的代碼片段將處理您的視頻並將其成功保存為瀏覽器兼容的格式。

錯誤信息:

OpenCV: FFMPEG: tag 0x30395056/'VP90' is not supported with codec id 167 and format 'webm / WebM'

請忽略此錯誤消息,等待並讓視頻處理。 試試這個,它有效。 謝謝你。

感謝您的回答我通過使用多線程解決了這個問題。 由於 write 方法需要更多時間,在此期間 opencv 可能會錯過參考系,因此我使用單獨的線程進行讀寫。 然后用於在寫入磁盤之前排隊存儲圖像。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM