Support H.264 on native via user installed ffmpeg executable#7962
Support H.264 on native via user installed ffmpeg executable#7962
Conversation
… linking to it anymore
| // (should be faster overall at no quality loss if the video is in this format). | ||
| // Check `ffmpeg -pix_fmts` for full list. | ||
| .rawvideo() // Output rgb24 on stdout. | ||
| .spawn() |
There was a problem hiding this comment.
Does this call to spawn block? i.e., will this cause a hickup on Windows if ffmpeg starts slowly?
If so, let's move it to the background thread. If not, let's add a comment.
There was a problem hiding this comment.
My comment on process starts being slow was entirely about the side of the new process :). But I'll make sure to give this another spin on Windows and check on this!
Moving it to background thread is a but cumbersome and of potentially dubious value because we need the process object & handle on the main thread potentially immediately
|
Testing this out I get
test_video_h264.mp4 |
… for deprecated video formats
What
ffmpegCLI #7607Tested this with videos containing b frames, both long and short.
(note how PTS != DTS, indicating that there's a b-frame somewhere ;-))
Biggest risk overall with the approach taken is that we can't detect dropped frames properly
Left to do before landing:
re_video::decode::ffmpeg] /\//Users/andreas/dev/rerun-io/internal-test-assets/video/greyscale_360p_h264.mp4, codec: H.264 (avc1.64001E) decoder: [swscaler @ 0x3001d8000] [warning] deprecated pixel format used, make sure you did set range correctlyevery time ffmpeg started, need to fix that to a log_once (if ffmpeg says it's deprecated then I figure we may report that 🤷, just don't spam)What's left to do (beyond general video bugs I logged while working on this) before calling this "done":
Checklist
mainbuild: rerun.io/viewernightlybuild: rerun.io/viewerCHANGELOG.mdand the migration guideTo run all checks from
main, comment on the PR with@rerun-bot full-check.