Registered pipes can't be used on Windows
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 58/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Domain
- audio-video-rtc, backend
Research direction
Start by inspecting windows/src/FFmpegKitConfig.cpp around the linked lines 844–845 and trace how the registered pipe is created, returned, and closed. Compare that lifecycle with the working Android behavior described in the issue; reproduce by registering a pipe, opening it with Dart File(pipePath).openWrite(), and running the shown FFmpeg command. Done means Windows can open and feed the registered pipe and FFmpeg receives the streamed input.
Written by the indexing model from the issue text.
Description
Hi, I'm running into an issue with the custom Windows implementation when trying to register a pipe for an input file.
Here is the rough setup:
final pipePath = await FFmpegKitConfig.registerNewFFmpegPipe();
if (pipePath == null) {
throw StateError('Failed to register new FFmpeg pipe');
}
await FFmpegKit.executeWithArgumentsAsync(
[
...['-i', pipePath],
...['-af', 'ebur128'], // Measures loudness, produces logs every 100ms
...['-f', 'null'],
'-',
],
(session) {},
(log) => print('[ffmpeg] ${log.getMessage()}'),
);
final ffmpegInputSink = File(pipePath).openWrite();
// Here you listen to a Stream<Uint8List> and pipe it to ffmpegInputSink,
// for example by using AudioRecorder().startStream() from the Flutter "record" package.
// ... when done:
await ffmpegInputSink.flush();
await ffmpegInputSink.close();
await FFmpegKitConfig.closeFFmpegPipe(pipePath);
On Android, this creates a pipe, which can be fed with a stream of data and then properly closed. The ffmpeg logs respond to the audio loudness as expected (everything works here).
On Windows, you also get back a valid pipePath (e.g. \\.\pipe\fk_pipe_1). However, this pipe doesn't actually exist. The File(pipePath).openWrite() command fails ("Cannot open file"), and the ffmpeg logs say:
[ffmpeg] \\.\pipe\fk_pipe_1: No such file or directory
I assume this has something to do with a line in FFmpegKitConfig.cpp, where the pipe gets closed before returning it to the Dart side:
Apologies if the ffmpeg-kit repository would have been a better place for this issue. I wasn't sure, because the Windows source files are also part of this repository.
Anyway, thanks for maintaining this plugin!
- Dominant language
- C
- Stars
- 182
- Forks
- 122
- PR merge metrics
- No merged PRs in 30d
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from sk3llo/ffmpeg_kit_flutter
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
sk3llo/ffmpeg_kit_flutter#176 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 42/100
sk3llo/ffmpeg_kit_flutter#174 ·
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
sk3llo/ffmpeg_kit_flutter#166 · 1 reaction ·
-
help wanted
Difficulty 5/5 Over a week Newbie friendliness 25/100
sk3llo/ffmpeg_kit_flutter#161 · 1 comment ·
-
Difficulty 3/5 1-2 days Newbie friendliness 42/100
sk3llo/ffmpeg_kit_flutter#152 · 5 comments ·
All issues in sk3llo/ffmpeg_kit_flutter
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Synth suite fails unless run from the repo root: signal_flow's default machine path is cwd-relativeOpenbug
Difficulty 2/5 1-3 hours Newbie friendliness 80/100
Nimblesite/osprey#370 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day