On Sat 01 Mar 2014 03:01:42 PM IRST, Maxim Dounin wrote:
Hello!

The ngx_http_output_filter() function can be called more than
once, but usually it doesn't make sense - instead, one should
install r->write_event_handler and do subsequent calls once it's
possible to write additional data to socket buffer.  Working with
event's isn't something trivial though.

Thanks a lot for write_event_handler.

Quoting Winnie-the-Pooh, "You needn't shout so loud".

Doing time-consuming transcoding in nginx worker isn't correct in
any case, as it will block all connections in this worker process.
So you have to do transcoding in some external process, and talk
to this process to get transcoded data.  This is basically what
upstream module do (as used by proxy, fastcgi, etc.), and it
can be used as an example of "how to do this in nginx".

The transcoding process already is doing by an external process, ffmpeg, into an incomplete file. I just need to read from first of this incomplete file one by one chunks and send them to client until seeing a real EOF. I have following plan for nginx configuration:
location \*.mp4 { mymodule; }

So, did you mean if two clients get x.mp4 and y.mp4 in same time then one of them is blocked until another one get complete file?! I don't think so while web servers usually make new threads.

I saw './nginx-1.4.5/src/http/ngx_http_upstream.c' but was so complex for me to understand.

However, I saw FastCGI is simple for me to understand. So, do you advise me to `regularly read ffmpeg output file` in a FastCGI script and then fasctcgi_pass the nginx to that?

Sorry for my questions...I think these are last ones ;)

Thank you so much!

_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx

Reply via email to