I told ffmpeg to use `-r 25` but the console output says `fps=7.6`.
I just put it together in a few hours to see if it was possible. Given the unexpected interest in it, I'll put some more work to see where we can take it.
I read the changefeeds post, but I don't think I understood exactly what they're for. Would clients be talking directly to the database, or would a persistent app worker block on database updates and then send this to the client?
An app usually sit between the database and the user, isolating them from each other. This demo does not isolate the database, it is just a proof of concept.
Changefeeds are for getting updates to the results of queries on the database. So for example, getting the top 5 users ordered by their score. The app leaves a connection open to the database, and the database pushes changes to the query results whenever they happen.
The app can then also have a persistent websocket connection or whatever to the client, so you're able to get push architecture all the way from the data source to the client.
Though, of course, you can also build things other than web apps. Here's a simple IRC bot built with Go that also uses RethinkDB changefeeds: http://rethinkdb.com/blog/go-irc-bot/
obviously this isn't production quality or scalable but interesting. on the topic of video streaming, could you build something like twitch.tv with this type of tool? or are there other tech stacks at play in order to make video broadcasting possible.
18 comments
[ 59.9 ms ] story [ 553 ms ] threadI just put it together in a few hours to see if it was possible. Given the unexpected interest in it, I'll put some more work to see where we can take it.
The app can then also have a persistent websocket connection or whatever to the client, so you're able to get push architecture all the way from the data source to the client.
You can see an example here of a node.js app using a changefeed to convey updates to the frontend through Socket.io: http://rethinkdb.com/blog/realtime-cluster-monitoring/
Though, of course, you can also build things other than web apps. Here's a simple IRC bot built with Go that also uses RethinkDB changefeeds: http://rethinkdb.com/blog/go-irc-bot/
"Start the changefeed at timestamp `x`. Once it's caught up to realtime, keep feeding me new ones"
The code in the demo does this by performing a separate `between` query.