From 8b220b4fb24b9c7f63a18f756e675a807991faf9 Mon Sep 17 00:00:00 2001 From: Chris Abraham Date: Tue, 10 Dec 2024 09:56:33 -0800 Subject: [PATCH 1/6] Add blog post "torchcodec: Easy and Efficient Video Decoding for PyTorch" Signed-off-by: Chris Abraham --- _posts/2024-12-10-torchcodec.md | 113 +++++++++++++++++++++++ assets/images/benchmark_readme_chart.png | Bin 0 -> 163507 bytes 2 files changed, 113 insertions(+) create mode 100644 _posts/2024-12-10-torchcodec.md create mode 100644 assets/images/benchmark_readme_chart.png diff --git a/_posts/2024-12-10-torchcodec.md b/_posts/2024-12-10-torchcodec.md new file mode 100644 index 000000000000..6a31ca39b4fc --- /dev/null +++ b/_posts/2024-12-10-torchcodec.md @@ -0,0 +1,113 @@ +--- +layout: blog_detail +title: "torchcodec: Easy and Efficient Video Decoding for PyTorch" +--- + +We are pleased to officially announce [torchcodec](https://github.com/pytorch/torchcodec), a library for decoding videos into PyTorch tensors. It is fast, accurate, and easy to use. When running PyTorch models on videos, torchcodec is our recommended way to turn those videos into data your model can use. + +Highlights of torchcodec include: + + + +* An intuitive decoding API that treats a video file as a Python sequence of frames. We support both index-based and presentation-time based frame retrieval. +* An emphasis on accuracy: we ensure you get the frames you requested, even if your video has variable frame rates. +* A rich sampling API that makes it easy and efficient to retrieve batches of frames. +* Best in class CPU decoding performance. +* CUDA accelerated decoding that enables high throughput when decoding many videos at once. +* Support for all codecs available in your installed version of FFmpeg. +* Simple binary installs for Linux and Mac. + + +## Easy to Use + +A simple, intuitive API was one of our main design principles. We start with simple decoding and extracting specific frames of a video: + +``` +from torchcodec.decoders import VideoDecoder +from torch import Tensor + +decoder = VideoDecoder("my_video.mp4") + +# Index based frame retrieval. +first_ten_frames: Tensor = decoder[10:] +last_ten_frames: Tensor = decoder[-10:] + +# Multi-frame retrieval, index and time based. +frames = decoder.get_frames_at(indices=[10, 0, 15]) +frames = decoder.get_frames_played_at(seconds=[0.2, 3, 4.5]) +``` + +All decoded frames are already PyTorch tensors, ready to be fed into models for training. + +Of course, more common in ML training pipelines is sampling multiple clips from videos. A clip is just a sequence of frames in presentation order—but the frames are often *not* consecutive. Our sampling API makes this easy: + +``` +from torchcodec.samplers import clips_at_regular_timestamps + +clips = clips_at_regular_timestamps( + decoder, + seconds_between_clip_starts=10, + num_frames_per_clip=5, + seconds_between_frames=0.2, +) +``` + +The above call yields a batch of clips where each clip starts 10 seconds apart, each clip has 5 frames, and those frames are 0.2 seconds apart. See our tutorials on [decoding](https://pytorch.org/torchcodec/0.1.0/generated_examples/basic_example.html) and [sampling](https://pytorch.org/torchcodec/0.1.0/generated_examples/sampling.html) for more! + + +## Fast Performance + +Performance was our other main design principle. Decoding videos for ML training has different performance requirements than decoding videos for playback. A typical ML video training pipeline will process many different videos (sometimes in the millions!), but only sample a small number of frames (dozens to hundreds) from each video. + +For this reason, we’ve paid particular attention to our decoder’s performance when seeking multiple times in a video, decoding a small number of frames after each seek. We present experiments with the following four scenarios: + + + +1. Decoding and transforming frames from multiple videos at once, inspired by what we have seen in data loading for large-scale training pipelines: + 1. Ten threads decode batches of 50 videos in parallel. + 2. For each video, decode 10 frames at evenly spaced times. + 3. For each frame, resize it to a 256x256 resolution. +2. Decoding 10 frames at random locations in a single video. +3. Decoding 10 frames at evenly spaced times of a single video. +4. Decoding the first 100 frames of a single video. + +We compare the following video decoders: + + + +* [Torchaudio](https://pytorch.org/audio/stable/index.html), CPU decoding only. +* [Torchvision](https://pytorch.org/vision/stable/index.html), using the [video_reader](https://pytorch.org/vision/stable/index.html#torchvision.set_video_backend) backend which is CPU decoding only. +* Torchcodec, GPU decoding with CUDA. +* Torchcodec, CPU decoding only. + +Using the following three videos: + + + +1. A synthetically generated video using FFmpeg’s [mandelbrot](https://ffmpeg.org/ffmpeg-filters.html#mandelbrot) generation pattern. The video is 10 seconds long, 60 frames per second and 1920x1080. +2. Same as above, except the video is 120 seconds long. +3. A [promotional video from NASA](https://download.pytorch.org/torchaudio/tutorial-assets/stream-api/NASAs_Most_Scientifically_Complex_Space_Observatory_Requires_Precision-MP4_small.mp4) that is 206 seconds long, 29.7 frames per second and 960x540. + +The [experimental script](https://github.com/pytorch/torchcodec/blob/b0de66677bac322e628f04ec90ddeeb0304c6abb/benchmarks/decoders/generate_readme_data.py) is in our repo. Our experiments run on a Linux system with an Intel processor that has 22 available cores and an Nvidia GPU. For CPU decoding, all libraries were instructed to automatically determine the best number of threads to use. + + +![Benchmark chart](/assets/images/benchmark_readme_chart.png){:style="width:100%"} + +From our experiments, we draw several conclusions: + + + +* Torchcodec is consistently the best-performing library for the primary use-case we designed it for: decoding many videos at once as a part of a training data loading pipeline. In particular, high-resolution videos see great gains with CUDA where decoding and transforms both happen on the GPU. +* Torchcodec is competitive on the CPU with seek-heavy use-cases such as random and uniform sampling. Currently, torchcodec’s performance is better with shorter videos that have a smaller file size. This performance is due to torchcodec’s emphasis on seek-accuracy, which involves an initial linear scan. +* Torchcodec is not as competitive when there is no seeking; that is, opening a video file and decoding from the beginning. This is again due to our emphasis on seek-accuracy and the initial linear scan. + +Implementing an [approximate seeking mode](https://github.com/pytorch/torchcodec/issues/427) in torchcodec should resolve these performance gaps, and it’s our highest priority feature for video decoding. + + +## What’s Next? + +As the name implies, the long-term future for torchcodec is more than just video decoding. Our next big feature is audio support—both decoding audio streams from video, and from audio-only media. In the long term, we want torchcodec to be the media decoding library for PyTorch. That means as we implement functionality in torchcodec, we will deprecate and eventually remove complementary features from torchaudio and torchvision. + +We also have video decoding improvements lined up, such as the previously mentioned approximate seeking mode for those who are willing to sacrifice accuracy for performance. + +Most importantly, we’re looking for feedback from the community! We’re most interested in working on features that the community finds valuable. Come [share your needs](https://github.com/pytorch/torchcodec/issues) and influence our future direction! \ No newline at end of file diff --git a/assets/images/benchmark_readme_chart.png b/assets/images/benchmark_readme_chart.png new file mode 100644 index 0000000000000000000000000000000000000000..84002bd56a8e46633f3b679f4dcfe46789da2a63 GIT binary patch literal 163507 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%0D((KNfFfJc9oa_i}IMlq@D>n!3HrXkX@@{R+f~8 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 t*i+WwYu!ihT6XxKG)SNQzqi` Date: Tue, 10 Dec 2024 10:09:56 -0800 Subject: [PATCH 2/6] try letters Signed-off-by: Chris Abraham --- _posts/2024-12-10-torchcodec.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_posts/2024-12-10-torchcodec.md b/_posts/2024-12-10-torchcodec.md index 6a31ca39b4fc..ab9e85cad644 100644 --- a/_posts/2024-12-10-torchcodec.md +++ b/_posts/2024-12-10-torchcodec.md @@ -64,9 +64,9 @@ For this reason, we’ve paid particular attention to our decoder’s performanc 1. Decoding and transforming frames from multiple videos at once, inspired by what we have seen in data loading for large-scale training pipelines: - 1. Ten threads decode batches of 50 videos in parallel. - 2. For each video, decode 10 frames at evenly spaced times. - 3. For each frame, resize it to a 256x256 resolution. + a. Ten threads decode batches of 50 videos in parallel. + b. For each video, decode 10 frames at evenly spaced times. + c. For each frame, resize it to a 256x256 resolution. 2. Decoding 10 frames at random locations in a single video. 3. Decoding 10 frames at evenly spaced times of a single video. 4. Decoding the first 100 frames of a single video. From a39d2e99ccb5a147d6ec1edeb35ece1738c9688c Mon Sep 17 00:00:00 2001 From: Chris Abraham Date: Tue, 10 Dec 2024 10:16:18 -0800 Subject: [PATCH 3/6] tweak Signed-off-by: Chris Abraham --- _posts/2024-12-10-torchcodec.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/_posts/2024-12-10-torchcodec.md b/_posts/2024-12-10-torchcodec.md index ab9e85cad644..0b877a960b37 100644 --- a/_posts/2024-12-10-torchcodec.md +++ b/_posts/2024-12-10-torchcodec.md @@ -64,9 +64,11 @@ For this reason, we’ve paid particular attention to our decoder’s performanc 1. Decoding and transforming frames from multiple videos at once, inspired by what we have seen in data loading for large-scale training pipelines: - a. Ten threads decode batches of 50 videos in parallel. - b. For each video, decode 10 frames at evenly spaced times. - c. For each frame, resize it to a 256x256 resolution. + + a. Ten threads decode batches of 50 videos in parallel. + b. For each video, decode 10 frames at evenly spaced times. + c. For each frame, resize it to a 256x256 resolution. + 2. Decoding 10 frames at random locations in a single video. 3. Decoding 10 frames at evenly spaced times of a single video. 4. Decoding the first 100 frames of a single video. From 4e16cb1e6b064fcb3dd1b8cf3ec23f8017e6b309 Mon Sep 17 00:00:00 2001 From: Chris Abraham Date: Tue, 10 Dec 2024 10:24:30 -0800 Subject: [PATCH 4/6] add spaces Signed-off-by: Chris Abraham --- _posts/2024-12-10-torchcodec.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_posts/2024-12-10-torchcodec.md b/_posts/2024-12-10-torchcodec.md index 0b877a960b37..2992c324680f 100644 --- a/_posts/2024-12-10-torchcodec.md +++ b/_posts/2024-12-10-torchcodec.md @@ -65,8 +65,8 @@ For this reason, we’ve paid particular attention to our decoder’s performanc 1. Decoding and transforming frames from multiple videos at once, inspired by what we have seen in data loading for large-scale training pipelines: - a. Ten threads decode batches of 50 videos in parallel. - b. For each video, decode 10 frames at evenly spaced times. + a. Ten threads decode batches of 50 videos in parallel. + b. For each video, decode 10 frames at evenly spaced times. c. For each frame, resize it to a 256x256 resolution. 2. Decoding 10 frames at random locations in a single video. From 1b3ad8a8a0d543b315fb1d753b9f7e445c85bf7f Mon Sep 17 00:00:00 2001 From: Chris Abraham Date: Tue, 10 Dec 2024 13:54:00 -0800 Subject: [PATCH 5/6] fix grammar Signed-off-by: Chris Abraham --- _posts/2024-12-10-torchcodec.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/_posts/2024-12-10-torchcodec.md b/_posts/2024-12-10-torchcodec.md index 2992c324680f..8bdfb3813603 100644 --- a/_posts/2024-12-10-torchcodec.md +++ b/_posts/2024-12-10-torchcodec.md @@ -9,10 +9,10 @@ Highlights of torchcodec include: -* An intuitive decoding API that treats a video file as a Python sequence of frames. We support both index-based and presentation-time based frame retrieval. +* An intuitive decoding API that treats a video file as a Python sequence of frames. We support both index-based and presentation-time-based frame retrieval. * An emphasis on accuracy: we ensure you get the frames you requested, even if your video has variable frame rates. * A rich sampling API that makes it easy and efficient to retrieve batches of frames. -* Best in class CPU decoding performance. +* Best-in-class CPU decoding performance. * CUDA accelerated decoding that enables high throughput when decoding many videos at once. * Support for all codecs available in your installed version of FFmpeg. * Simple binary installs for Linux and Mac. @@ -90,7 +90,7 @@ Using the following three videos: 2. Same as above, except the video is 120 seconds long. 3. A [promotional video from NASA](https://download.pytorch.org/torchaudio/tutorial-assets/stream-api/NASAs_Most_Scientifically_Complex_Space_Observatory_Requires_Precision-MP4_small.mp4) that is 206 seconds long, 29.7 frames per second and 960x540. -The [experimental script](https://github.com/pytorch/torchcodec/blob/b0de66677bac322e628f04ec90ddeeb0304c6abb/benchmarks/decoders/generate_readme_data.py) is in our repo. Our experiments run on a Linux system with an Intel processor that has 22 available cores and an Nvidia GPU. For CPU decoding, all libraries were instructed to automatically determine the best number of threads to use. +The [experimental script](https://github.com/pytorch/torchcodec/blob/b0de66677bac322e628f04ec90ddeeb0304c6abb/benchmarks/decoders/generate_readme_data.py) is in our repo. Our experiments run on a Linux system with an Intel processor that has 22 available cores and an NVIDIA GPU. For CPU decoding, all libraries were instructed to automatically determine the best number of threads to use. ![Benchmark chart](/assets/images/benchmark_readme_chart.png){:style="width:100%"} @@ -99,8 +99,8 @@ From our experiments, we draw several conclusions: -* Torchcodec is consistently the best-performing library for the primary use-case we designed it for: decoding many videos at once as a part of a training data loading pipeline. In particular, high-resolution videos see great gains with CUDA where decoding and transforms both happen on the GPU. -* Torchcodec is competitive on the CPU with seek-heavy use-cases such as random and uniform sampling. Currently, torchcodec’s performance is better with shorter videos that have a smaller file size. This performance is due to torchcodec’s emphasis on seek-accuracy, which involves an initial linear scan. +* Torchcodec is consistently the best-performing library for the primary use case we designed it for: decoding many videos at once as a part of a training data loading pipeline. In particular, high-resolution videos see great gains with CUDA where decoding and transforms both happen on the GPU. +* Torchcodec is competitive on the CPU with seek-heavy use cases such as random and uniform sampling. Currently, torchcodec’s performance is better with shorter videos that have a smaller file size. This performance is due to torchcodec’s emphasis on seek-accuracy, which involves an initial linear scan. * Torchcodec is not as competitive when there is no seeking; that is, opening a video file and decoding from the beginning. This is again due to our emphasis on seek-accuracy and the initial linear scan. Implementing an [approximate seeking mode](https://github.com/pytorch/torchcodec/issues/427) in torchcodec should resolve these performance gaps, and it’s our highest priority feature for video decoding. From 25054e5b8398bf245821f99f764060018c1bccb4 Mon Sep 17 00:00:00 2001 From: Chris Abraham Date: Wed, 11 Dec 2024 10:32:34 -0800 Subject: [PATCH 6/6] Update publish date Signed-off-by: Chris Abraham --- _posts/{2024-12-10-torchcodec.md => 2024-12-11-torchcodec.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename _posts/{2024-12-10-torchcodec.md => 2024-12-11-torchcodec.md} (100%) diff --git a/_posts/2024-12-10-torchcodec.md b/_posts/2024-12-11-torchcodec.md similarity index 100% rename from _posts/2024-12-10-torchcodec.md rename to _posts/2024-12-11-torchcodec.md