Answers.Body: <p>If you’re up for building your own server, and have some coding skill, then you could look at setting up a nginx server running the <a href="https://github.com/arut/nginx-rtmp-module" rel="nofollow noreferrer">RTMP extension</a> that can capture an re-stream live or on demand video. It can also do near realtime transcoding or "at completion of capture" transcoding using ffmpeg.</p>
  
  <p>For the system I setup, I send live video in using an IP based camera system from multiple sources that can do RTMP streaming, or if I want to capture desktop content like a video game I use <a href="https://obsproject.com" rel="nofollow noreferrer">OBS</a> to do the streaming to the server.<a href="https://i.sstatic.net/gk3Q8.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/gk3Q8.png" alt="enter image description here"></a></p>
  
  <p>The actually user website itself runs from a node.js based system that has access to the content recorded by the nginx rtmp capture.</p>
  
  <p><strong>OR</strong></p>
  
  <p>You could look at a pre-build solution like Kaltura which has both a <a href="http://www.kaltura.org" rel="nofollow noreferrer">open-source community version</a> and a <a href="http://corp.kaltura.com" rel="nofollow noreferrer">commercial version</a>. Think of it as your own YouTube server setup that has a tone of features ready to go out-of-the-box.
  <a href="https://i.sstatic.net/yDGV4.jpg" rel="nofollow noreferrer"><img src="https://i.sstatic.net/yDGV4.jpg" alt="enter image description here"></a></p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-01-12T11:01:20.247Z
Answers.LastActivityDate: 2016-01-12T11:01:20.247Z
Answers.UserDisplayName: kenjikato
Answers.Body: <p>Why would you need the videos to be available instantly if they are going to be reviewed before making them publicly available anyway?</p>
  
  <p>Reducing the encoding time comes down to server performance, which in turn comes down to money. Youtube has very much money, and still the server-side encoding of uploaded videos takes some time. I'm pretty sure they've done anything they can to reduce the waiting time as much as possible; I don't think you can do more with limited ressources and time. The only solution I see is to not reencode uploaded videos, which will get rid of that issue alltogether. However, this opens up another set of issues related to compatibility with various devices, high bandwidth usage on the visitor's side and problably security problems as well. </p>
  
  <p>You can have a look at the streaming services provided by <a href="http://www.twitch.tv/" rel="nofollow">Twitch</a> (which sadly still uses flash) and <a href="https://www.youtube.com/my_live_events" rel="nofollow">Youtube Live Events</a>; both are very sophisticated systems, so I suggest using one of those instead of trying to build your own solution. </p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-10-12T12:53:47.800Z
Answers.LastActivityDate: 2015-10-12T12:53:47.800Z
Answers.UserDisplayName: MoritzLost
Answers.Body: <p>Technically, you <em>could</em> map a network drive from whatever server you're talking about to your local machine, and then use something like a blackmagic h264 prorecorder to live encode a file to that folder. It'll be a completed mp4 when you press stop, and ready to view instantly. </p>
  
  <p>But that's the easy part... What will your website look like? How will it function? Will you have automated routines to make them private for review then public after review? Will people have to login to review? There's a million questions on the website front end that are very difficult to engineer. That's why people have suggested to use other services that are very mature and have cost billions to put together.</p>
  
  <p>Getting the video to the server in real time is super easy, it's the rest that's hard.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-11-13T03:42:43.850Z
Answers.LastActivityDate: 2015-11-13T03:42:43.850Z
Answers.UserDisplayName: Jarmer
Answers.Body: <p>Why don't you stream to YouTube? That's free. Make your stream/"event" private. Then it's ready instantly once the "event" ends because there is no waiting period. Then serve that embedded player on your website. This is very flexible and free (less camera and computer expense). No reason to build your own sever ... Maybe eventually, but the YouTube service will do a great job in the meantime. </p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-05-11T15:03:58.083Z
Answers.LastActivityDate: 2016-05-11T15:03:58.083Z
Answers.UserDisplayName: A.J. Hernandez
Answers.Body: <p>There are video services such as LiveStream and Ustream that provide such functionality.  It comes at a cost, but their fees are nothing compared to the cost of building a video distribution capability that scales beyond a few friends and immediate family.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-05-11T15:06:18.143Z
Answers.Text: YouTube is better and it's free. We've recently left those other platforms and we couldn't be happier.
Answers.UserDisplayName: A.J. Hernandez
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-10-12T14:34:35.827Z
Answers.LastActivityDate: 2015-10-12T14:34:35.827Z
Answers.UserDisplayName: Michael Tiemann
Body: <p>Not sure if this is the right place to ask this question (pretty technical), but I thought I'd start here.</p>
  
  <p>I'm interested in building a website that will have a streaming-video feature. It's not quite live video, because the videos will only be available after they have been reviewed. However, I would like the videos to be viewable on demand (ie, I don't want there to be a waiting period for them to be uploaded and encoded, like Youtube). </p>
  
  <p>Basically, I'm wondering how to live-stream video directly to a server, so that it is being encoded on the fly, and can be watched as soon as the stream ends.</p>
  
  <p>Thanks for your help!</p>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2015-10-15T20:15:21.383Z
Comments.Text: If you can run the python app youtube-dl you can capture on the fly. You'd just need a way to tell it to end and name it something meaningful.
Comments.UserDisplayName: screaming drills
Tags: <streaming><encoding><live>
Title: Live streaming to a disk
UserDisplayName: Will
ThreadText: # Live streaming to a disk
  
  (Asked by: username_0 on 2015-10-11)
  
  Not sure if this is the right place to ask this question (pretty technical), but I thought I'd start here.
  
  I'm interested in building a website that username_0 have a streaming-video feature. It's not quite live video, because the videos username_0 only be available after they have been reviewed. However, I would like the videos to be viewable on demand (ie, I don't want there to be a waiting period for them to be uploaded and encoded, like Youtube).
  
  Basically, I'm wondering how to live-stream video directly to a server, so that it is being encoded on the fly, and can be watched as soon as the stream ends.
  
  Thanks for your help!
  
  **Tags:** streaming, encoding, live
  
  > **Comments:**
  > **username_1**: If you can run the python app youtube-dl you can capture on the fly. You'd just need a way to tell it to end and name it something meaningful.  
  
  ---
  
  ## 5 answers
  
  ### Answer by username_2 on 2016-01-12. Score: 1
  
  If you’re up for building your own server, and have some coding skill, then you could look at setting up a nginx server running the [RTMP extension](https://github.com/arut/nginx-rtmp-module) that can capture an re-stream live or on demand video. It can also do near realtime transcoding or "at completion of capture" transcoding using ffmpeg.
  
  For the system I setup, I send live video in using an IP based camera system from multiple sources that can do RTMP streaming, or if I want to capture desktop content like a video game I use [OBS](https://obsproject.com) to do the streaming to the server.[![enter image description here](https://i.sstatic.net/gk3Q8.png)](https://i.sstatic.net/gk3Q8.png)
  
  The actually user website itself runs from a node.js based system that has access to the content recorded by the nginx rtmp capture.
  
  **OR**
  
  You could look at a pre-build solution like Kaltura which has both a [open-source community version](http://www.kaltura.org) and a [commercial version](http://corp.kaltura.com). Think of it as your own YouTube server setup that has a tone of features ready to go out-of-the-box.
  [![enter image description here](https://i.sstatic.net/yDGV4.jpg)](https://i.sstatic.net/yDGV4.jpg)
  
  
  ---
  
  ### Answer by username_3 on 2015-10-12. Score: 0
  
  Why would you need the videos to be available instantly if they are going to be reviewed before making them publicly available anyway?
  
  Reducing the encoding time comes down to server performance, which in turn comes down to money. Youtube has very much money, and still the server-side encoding of uploaded videos takes some time. I'm pretty sure they've done anything they can to reduce the waiting time as much as possible; I don't think you can do more with limited ressources and time. The only solution I see is to not reencode uploaded videos, which username_0 get rid of that issue alltogether. However, this opens up another set of issues related to compatibility with various devices, high bandwidth usage on the visitor's side and problably security problems as well.
  
  You can have a look at the streaming services provided by [Twitch](http://www.twitch.tv/) (which sadly still uses flash) and [Youtube Live Events](https://www.youtube.com/my_live_events); both are very sophisticated systems, so I suggest using one of those instead of trying to build your own solution.
  
  
  ---
  
  ### Answer by username_4 on 2015-11-13. Score: 0
  
  Technically, you *could* map a network drive from whatever server you're talking about to your local machine, and then use something like a blackmagic h264 prorecorder to live encode a file to that folder. It'll be a completed mp4 when you press stop, and ready to view instantly.
  
  But that's the easy part... What username_0 your website look like? How username_0 it function? username_0 you have automated routines to make them private for review then public after review? username_0 people have to login to review? There's a million questions on the website front end that are very difficult to engineer. That's why people have suggested to use other services that are very mature and have cost billions to put together.
  
  Getting the video to the server in real time is super easy, it's the rest that's hard.
  
  
  ---
  
  ### Answer by username_5 on 2016-05-11. Score: 0
  
  Why don't you stream to YouTube? That's free. Make your stream/"event" private. Then it's ready instantly once the "event" ends because there is no waiting period. Then serve that embedded player on your website. This is very flexible and free (less camera and computer expense). No reason to build your own sever ... Maybe eventually, but the YouTube service username_0 do a great job in the meantime.
  
  
  ---
  
  ### Answer by username_6 on 2015-10-12. Score: 0
  
  There are video services such as LiveStream and Ustream that provide such functionality. It comes at a cost, but their fees are nothing compared to the cost of building a video distribution capability that scales beyond a few friends and immediate family.
  
  > **Comments:**
  > **username_5**: YouTube is better and it's free. We've recently left those other platforms and we couldn't be happier.  
  
  ---
  
  