Commit graph

5 commits

Author SHA1 Message Date
Jianhui Dai
4d752ec647 [rtc_tools/video_encoder] Support Y4M file input
This CL adds `Y4mFrameGenerator` to support Y4M file input.

Bug: webrtc:15210
Change-Id: If21e40a609b3c6f980a413fb183cd4dfb5123aab
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/311520
Commit-Queue: Jianhui J Dai <jianhui.j.dai@intel.com>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40460}
2023-07-24 04:35:43 +00:00
Jianhui Dai
32a8169a65 Use common VideoFrameTypeToString helper
This CL cleans up all local conversions, in favor of the common helper
function.

Bug: webrtc:15210
Change-Id: Id77e1c6b1151a2542d92e220e91d5b11285479b8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/311060
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Jianhui J Dai <jianhui.j.dai@intel.com>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40420}
2023-07-12 00:28:47 +00:00
Jianhui Dai
a2e945e042 [rtc_tools/video_encoder] Output ivf for all SVC decode targets
This CL extracts the ivf file writer from `TestEncodedImageCallback`
into separate .cc|.h files. Improve the `EncodedImageFileWriter` to
support SVC that output ivf for all decode targets.

EXAMPLE: Encode with VP9 L3T3_KEY, the outputs:
output-VP9-L3T3_KEY-L0T0.ivf
output-VP9-L3T3_KEY-L0T1.ivf
output-VP9-L3T3_KEY-L0T2.ivf
output-VP9-L3T3_KEY-L1T0.ivf
output-VP9-L3T3_KEY-L1T1.ivf
output-VP9-L3T3_KEY-L1T2.ivf
output-VP9-L3T3_KEY-L2T0.ivf
output-VP9-L3T3_KEY-L2T1.ivf
output-VP9-L3T3_KEY-L2T2.ivf

Bug: webrtc:15210
Change-Id: Iba46c897a7b783bb4b79ec18715e901476cb9f55
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/309280
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Jianhui J Dai <jianhui.j.dai@intel.com>
Cr-Commit-Position: refs/heads/main@{#40363}
2023-06-27 23:57:08 +00:00
Philipp Hancke
e4e33b8ee3 Add video_encoder to default build
under the same conditions as video_replay.
Drive-by: fix typos

BUG=webrtc:15210

Change-Id: I6d288b2f7c8e2101192556eada6b28c82bfabf2f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/308723
Reviewed-by: Markus Handell <handellm@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Philipp Hancke <phancke@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#40355}
2023-06-27 10:18:33 +00:00
Jianhui Dai
18f66fcde8 [rct_tools/video_encoder] Add video encoder tool
This CL adds a new video encode tool that supports to encode video at
specified codec, scalability mode, resolution, frame rate, bitrate,
key frame interval and the number of encoding frames.

The video encoder accepts video frames from `FrameGeneratorInterface`,
and supports `SquareFrameGenerator`, `SlideFrameGenerator` and
`IvfFileFrameGenerator`.

All the encoded bitstreams are wrote into ivf output files.

The purposes of this video encoder tool are:
1. Check the functionalities of video codecs and scalability modes.
2. Optimize video quality at different encode setting.
3. Fine tune the bitrate controller.
4. Compare the quality of different codecs at the same setting.
5. And more.

TESTS: Run the tool at 1280x720, 30fps, 2000kbps, 100 GOP, 300 frames:
vp8 [L1T1 L1T3]
h264 [L1T1 L1T3]
vp9 [L1T1 L1T3 L3T3_KEY]
av1 [L1T1 L1T3 L3T3_KEY]

Bug: webrtc:15210
Change-Id: I3b0e463cf3236cd9a481fbab5688643c203958da
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/307361
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Jianhui J Dai <jianhui.j.dai@intel.com>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40267}
2023-06-13 11:45:43 +00:00