after_build_tx => sub { my ($tx, $app) = @_; $tx->once('chunk'=>sub { my ($tx, $chunk) = @_; my $url = $tx->req->url->to_abs; my $feed = $url->path->to_route; return unless $url->path->to_route =~ /ffmpeg/ and $tx->req->method eq 'POST'; $feed = $app->feeds->{$feed} = {tx=>$tx, clients=>{}}; $tx->req->max_message_size(0); $tx->req->content->asset->on(upgrade => sub { my ($mem, $file) = @_; $file->handle->close; $file->handle(IO::File->new("> /dev/null")); }); $tx->on('chunk'=>sub { my ($tx, $chunk) = @_; $_->tx->send({binary => $chunk}) for (values %{$feed->{clients}}); }); }); },