OiO.lk Community platform!

Oio.lk is an excellent forum for developers, providing a wide range of resources, discussions, and support for those in the developer community. Join oio.lk today to connect with like-minded professionals, share insights, and stay updated on the latest trends and technologies in the development field.
  You need to log in or register to access the solved answers to this problem.
  • You have reached the maximum number of guest views allowed
  • Please register below to remove this limitation

VideoWriter only saves video when -1 is passed as fourcc parameter

  • Thread starter Thread starter Nick Ressler
  • Start date Start date
N

Nick Ressler

Guest
My code is taking multiple images and turning them into a video with the opencv VideoWriter. However, no matter what documented fourcc code I use in cv2.VideoWriter_fourcc(*'XXXX') the saved file is never viewable and an error saying the codec used isn't supported. FYI I'm using python and Windows.

But, when I put -1 instead of cv2.VideoWriter_fourcc(*'XXXX'), the code works there's just a pesky output of fourcc codes (none of which worked for me).

There's been a lot of posts about this problem but none of them have worked. What do I do if I don't want to use this weird workaround?

Recommended code that failed:

Code:
videoWriter = cv2.VideoWriter(outputFolder+'experimentFrames.mp4', cv2.VideoWriter_fourcc(*'mp4v'),
                              fps, (frameWidth,frameHeight))
for frame in framesForVideo:
    videoWriter.write(frame)
videoWriter.release()

Code that works:

Code:
videoWriter = cv2.VideoWriter(outputFolder+'experimentFrames.mp4', -1,
                              fps, (frameWidth,frameHeight))

Annoying output:

Code:
OpenCV: FFMPEG: format mp4 / MP4 (MPEG-4 Part 14)
fourcc tag 0x7634706d/'mp4v' codec_id 000C
fourcc tag 0x31637661/'avc1' codec_id 001B
fourcc tag 0x33637661/'avc3' codec_id 001B
fourcc tag 0x31766568/'hev1' codec_id 00AD
fourcc tag 0x31637668/'hvc1' codec_id 00AD
fourcc tag 0x7634706d/'mp4v' codec_id 0002
fourcc tag 0x7634706d/'mp4v' codec_id 0001
fourcc tag 0x7634706d/'mp4v' codec_id 0007
fourcc tag 0x7634706d/'mp4v' codec_id 003D
fourcc tag 0x7634706d/'mp4v' codec_id 0058
fourcc tag 0x312d6376/'vc-1' codec_id 0046
fourcc tag 0x63617264/'drac' codec_id 0074
fourcc tag 0x7634706d/'mp4v' codec_id 00A3
fourcc tag 0x39307076/'vp09' codec_id 00A7
fourcc tag 0x31307661/'av01' codec_id 801D
fourcc tag 0x6134706d/'mp4a' codec_id 15002
fourcc tag 0x63616c61/'alac' codec_id 15010
fourcc tag 0x6134706d/'mp4a' codec_id 1502D
fourcc tag 0x6134706d/'mp4a' codec_id 15001
fourcc tag 0x6134706d/'mp4a' codec_id 15000
fourcc tag 0x332d6361/'ac-3' codec_id 15003
fourcc tag 0x332d6365/'ec-3' codec_id 15028
fourcc tag 0x6134706d/'mp4a' codec_id 15004
fourcc tag 0x61706c6d/'mlpa' codec_id 1502C
fourcc tag 0x43614c66/'fLaC' codec_id 1500C
fourcc tag 0x7375704f/'Opus' codec_id 1503C
fourcc tag 0x6134706d/'mp4a' codec_id 15005
fourcc tag 0x6134706d/'mp4a' codec_id 15018
fourcc tag 0x6134706d/'mp4a' codec_id 15803
fourcc tag 0x7334706d/'mp4s' codec_id 17000
fourcc tag 0x67337874/'tx3g' codec_id 17005
fourcc tag 0x646d7067/'gpmd' codec_id 18807
fourcc tag 0x316d686d/'mhm1' codec_id 15817
<p>My code is taking multiple images and turning them into a video with the opencv VideoWriter. However, no matter what documented fourcc code I use in <code>cv2.VideoWriter_fourcc(*'XXXX')</code> the saved file is never viewable and an error saying the codec used isn't supported. FYI I'm using python and Windows.</p>
<p>But, when I put -1 instead of cv2.VideoWriter_fourcc(*'XXXX'), the code works there's just a pesky output of fourcc codes (none of which worked for me).</p>
<p>There's been a lot of posts about this problem but none of them have worked. What do I do if I don't want to use this weird workaround?</p>
<p>Recommended code that failed:</p>
<pre><code>videoWriter = cv2.VideoWriter(outputFolder+'experimentFrames.mp4', cv2.VideoWriter_fourcc(*'mp4v'),
fps, (frameWidth,frameHeight))
for frame in framesForVideo:
videoWriter.write(frame)
videoWriter.release()
</code></pre>
<p>Code that works:</p>
<pre><code>videoWriter = cv2.VideoWriter(outputFolder+'experimentFrames.mp4', -1,
fps, (frameWidth,frameHeight))
</code></pre>
<p>Annoying output:</p>
<pre><code>OpenCV: FFMPEG: format mp4 / MP4 (MPEG-4 Part 14)
fourcc tag 0x7634706d/'mp4v' codec_id 000C
fourcc tag 0x31637661/'avc1' codec_id 001B
fourcc tag 0x33637661/'avc3' codec_id 001B
fourcc tag 0x31766568/'hev1' codec_id 00AD
fourcc tag 0x31637668/'hvc1' codec_id 00AD
fourcc tag 0x7634706d/'mp4v' codec_id 0002
fourcc tag 0x7634706d/'mp4v' codec_id 0001
fourcc tag 0x7634706d/'mp4v' codec_id 0007
fourcc tag 0x7634706d/'mp4v' codec_id 003D
fourcc tag 0x7634706d/'mp4v' codec_id 0058
fourcc tag 0x312d6376/'vc-1' codec_id 0046
fourcc tag 0x63617264/'drac' codec_id 0074
fourcc tag 0x7634706d/'mp4v' codec_id 00A3
fourcc tag 0x39307076/'vp09' codec_id 00A7
fourcc tag 0x31307661/'av01' codec_id 801D
fourcc tag 0x6134706d/'mp4a' codec_id 15002
fourcc tag 0x63616c61/'alac' codec_id 15010
fourcc tag 0x6134706d/'mp4a' codec_id 1502D
fourcc tag 0x6134706d/'mp4a' codec_id 15001
fourcc tag 0x6134706d/'mp4a' codec_id 15000
fourcc tag 0x332d6361/'ac-3' codec_id 15003
fourcc tag 0x332d6365/'ec-3' codec_id 15028
fourcc tag 0x6134706d/'mp4a' codec_id 15004
fourcc tag 0x61706c6d/'mlpa' codec_id 1502C
fourcc tag 0x43614c66/'fLaC' codec_id 1500C
fourcc tag 0x7375704f/'Opus' codec_id 1503C
fourcc tag 0x6134706d/'mp4a' codec_id 15005
fourcc tag 0x6134706d/'mp4a' codec_id 15018
fourcc tag 0x6134706d/'mp4a' codec_id 15803
fourcc tag 0x7334706d/'mp4s' codec_id 17000
fourcc tag 0x67337874/'tx3g' codec_id 17005
fourcc tag 0x646d7067/'gpmd' codec_id 18807
fourcc tag 0x316d686d/'mhm1' codec_id 15817
</code></pre>
 

Latest posts

Top