annotate third_party/ffmpeg/README.md @ 250:745fd127b2a1

[seobeo] Add bounded worker interface Co-authored-by: Copilot <[email protected]>
author MrJuneJune <me@mrjunejune.com>
date Tue, 04 Aug 2026 06:23:37 -0700
parents 543df0fe7168
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
242
543df0fe7168 [tools] Add full HLS player support
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1 # FFmpeg CLI wrapper
543df0fe7168 [tools] Add full HLS player support
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2
543df0fe7168 [tools] Add full HLS player support
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
3 This package restores the existing process-based FFmpeg wrapper and adds
543df0fe7168 [tools] Add full HLS player support
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
4 fragmented-MP4 HLS VOD generation.
543df0fe7168 [tools] Add full HLS player support
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
5
543df0fe7168 [tools] Add full HLS player support
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
6 The wrapper uses `fork`/`execvp` with explicit arguments instead of building a
543df0fe7168 [tools] Add full HLS player support
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
7 shell command. FFmpeg must be installed on the machine running the target.
543df0fe7168 [tools] Add full HLS player support
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
8
543df0fe7168 [tools] Add full HLS player support
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
9 ```c
543df0fe7168 [tools] Add full HLS player support
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
10 Fmp4HlsOpts options = ffmpeg_fmp4_hls_opts_default();
543df0fe7168 [tools] Add full HLS player support
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
11 options.codec = FFMPEG_HLS_VP9_OPUS;
543df0fe7168 [tools] Add full HLS player support
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
12 ffmpeg_video_to_fmp4_hls(
543df0fe7168 [tools] Add full HLS player support
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
13 "input.mp4",
543df0fe7168 [tools] Add full HLS player support
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
14 "output",
543df0fe7168 [tools] Add full HLS player support
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
15 "sample",
543df0fe7168 [tools] Add full HLS player support
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
16 &options);
543df0fe7168 [tools] Add full HLS player support
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
17 ```
543df0fe7168 [tools] Add full HLS player support
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
18
543df0fe7168 [tools] Add full HLS player support
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
19 The wrapper supports VP9/Opus and H.264/AAC fMP4 renditions so callers can
543df0fe7168 [tools] Add full HLS player support
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
20 build codec-compatible HLS master playlists.
543df0fe7168 [tools] Add full HLS player support
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
21
543df0fe7168 [tools] Add full HLS player support
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
22 ```bash
543df0fe7168 [tools] Add full HLS player support
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
23 bazel test //third_party/ffmpeg:ffmpeg_hls_test
543df0fe7168 [tools] Add full HLS player support
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
24 ```