1 <!DOCTYPE html PUBLIC 
"-//W3C//DTD XHTML 1.0 Strict//EN" 
   2           "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
   3 <html xmlns=
"http://www.w3.org/1999/xhtml" dir=
"ltr"> 
   5     <meta http-equiv=
"Content-Type" content=
"text/html;charset=utf-8" /> 
   6     <title>Petter Reinholdtsen: Recording video from cron using VLC
</title> 
   7     <link rel=
"stylesheet" type=
"text/css" media=
"screen" href=
"http://people.skolelinux.org/pere/blog/style.css" /> 
   8     <link rel=
"stylesheet" type=
"text/css" media=
"screen" href=
"http://people.skolelinux.org/pere/blog/vim.css" /> 
  15      <a href=
"http://people.skolelinux.org/pere/blog/">Petter Reinholdtsen
</a> 
  23       <div class=
"title">Recording video from cron using VLC
</div> 
  24       <div class=
"date"> 5th April 
2009</div> 
  25       <div class=
"body"><p>One think I have wanted to figure out for a along time is how to
 
  26 run vlc from cron to do recording of video streams on the net.  The
 
  27 task is trivial with mplayer, but I do not really trust the security
 
  28 of mplayer (it crashes too often on strange input), and thus prefer
 
  29 vlc.  I finally found a way to do it today.  I spent an hour or so
 
  30 searching the web for recipes and reading the documentation.  The
 
  31 hardest part was to get rid of the GUI window, but after finding the
 
  32 dummy interface, the command line finally presented itself:
</p> 
  34 <blockquote><pre>URL=http://www.ping.uio.no/video/rms-oslo_2009.ogg
 
  36 DISPLAY= vlc -q $URL \
 
  37   --sout="#duplicate{dst=std{access=file,url='$SAVEFILE'},dst=nodisplay}" \
 
  38   --intf=dummy
</pre></blockquote> 
  40 <p>The command stream the URL and store it in the SAVEFILE by
 
  41 duplicating the output stream to "nodisplay" and the file, using the
 
  42 dummy interface.  The dummy interface and the nodisplay output make
 
  43 sure no X interface is needed.
</p> 
  45 <p>The cron job then need to start this job with the appropriate URL
 
  46 and file name to save, sleep for the duration wanted, and then kill
 
  47 the vlc process with SIGTERM.  Here is a complete script
 
  48 <tt>vlc-record
</tt> to use from 
<tt>at
</tt> or 
<tt>cron
</tt>:
</p> 
  50 <blockquote><pre>#!/bin/sh
 
  55 DISPLAY= vlc -q "$URL" \
 
  56   --sout="#duplicate{dst=std{access=file,url='$SAVEFILE'},dst=nodisplay}" \
 
  57   --intf=dummy < /dev/null 
> /dev/null 
2>&
1 &
 
  61 wait $pid
</pre></blockquote> 
  64       <div class=
"tags">Tags: 
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>, 
<a href=
"http://people.skolelinux.org/pere/blog/tags/nuug">nuug
</a>, 
<a href=
"http://people.skolelinux.org/pere/blog/tags/video">video
</a>.
</div> 
  82 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/01/">January (
11)
</a></li> 
  84 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/02/">February (
9)
</a></li> 
  86 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/03/">March (
9)
</a></li> 
  88 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/04/">April (
6)
</a></li> 
  90 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/05/">May (
9)
</a></li> 
  92 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/06/">June (
10)
</a></li> 
  94 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/07/">July (
7)
</a></li> 
  96 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/08/">August (
3)
</a></li> 
  98 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/09/">September (
2)
</a></li> 
 105 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/01/">January (
7)
</a></li> 
 107 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/02/">February (
10)
</a></li> 
 109 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/03/">March (
17)
</a></li> 
 111 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/04/">April (
12)
</a></li> 
 113 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/05/">May (
12)
</a></li> 
 115 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/06/">June (
20)
</a></li> 
 117 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/07/">July (
17)
</a></li> 
 119 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/08/">August (
6)
</a></li> 
 121 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/09/">September (
9)
</a></li> 
 123 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/10/">October (
17)
</a></li> 
 125 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/11/">November (
10)
</a></li> 
 127 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/12/">December (
7)
</a></li> 
 134 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/01/">January (
16)
</a></li> 
 136 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/02/">February (
6)
</a></li> 
 138 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/03/">March (
6)
</a></li> 
 140 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/04/">April (
7)
</a></li> 
 142 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/05/">May (
3)
</a></li> 
 144 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/06/">June (
2)
</a></li> 
 146 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/07/">July (
7)
</a></li> 
 148 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/08/">August (
6)
</a></li> 
 150 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/09/">September (
4)
</a></li> 
 152 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/10/">October (
2)
</a></li> 
 154 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/11/">November (
3)
</a></li> 
 156 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/12/">December (
1)
</a></li> 
 163 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/01/">January (
2)
</a></li> 
 165 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/02/">February (
1)
</a></li> 
 167 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/03/">March (
3)
</a></li> 
 169 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/04/">April (
3)
</a></li> 
 171 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/05/">May (
9)
</a></li> 
 173 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/06/">June (
14)
</a></li> 
 175 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/07/">July (
12)
</a></li> 
 177 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/08/">August (
13)
</a></li> 
 179 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/09/">September (
7)
</a></li> 
 181 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/10/">October (
9)
</a></li> 
 183 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/11/">November (
13)
</a></li> 
 185 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/12/">December (
12)
</a></li> 
 192 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/01/">January (
8)
</a></li> 
 194 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/02/">February (
8)
</a></li> 
 196 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/03/">March (
12)
</a></li> 
 198 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/04/">April (
10)
</a></li> 
 200 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/05/">May (
9)
</a></li> 
 202 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/06/">June (
3)
</a></li> 
 204 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/07/">July (
4)
</a></li> 
 206 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/08/">August (
3)
</a></li> 
 208 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/09/">September (
1)
</a></li> 
 210 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/10/">October (
2)
</a></li> 
 212 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/11/">November (
3)
</a></li> 
 214 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/12/">December (
3)
</a></li> 
 221 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2008/11/">November (
5)
</a></li> 
 223 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2008/12/">December (
7)
</a></li> 
 234  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (
13)
</a></li> 
 236  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/amiga">amiga (
1)
</a></li> 
 238  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/aros">aros (
1)
</a></li> 
 240  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bankid">bankid (
4)
</a></li> 
 242  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (
7)
</a></li> 
 244  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (
12)
</a></li> 
 246  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bsa">bsa (
2)
</a></li> 
 248  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/debian">debian (
85)
</a></li> 
 250  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (
139)
</a></li> 
 252  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/digistan">digistan (
10)
</a></li> 
 254  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/docbook">docbook (
10)
</a></li> 
 256  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (
4)
</a></li> 
 258  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/english">english (
214)
</a></li> 
 260  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (
21)
</a></li> 
 262  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (
12)
</a></li> 
 264  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (
12)
</a></li> 
 266  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (
1)
</a></li> 
 268  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (
11)
</a></li> 
 270  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/intervju">intervju (
37)
</a></li> 
 272  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (
7)
</a></li> 
 274  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/kart">kart (
18)
</a></li> 
 276  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/ldap">ldap (
8)
</a></li> 
 278  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/lenker">lenker (
6)
</a></li> 
 280  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (
1)
</a></li> 
 282  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (
25)
</a></li> 
 284  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/norsk">norsk (
235)
</a></li> 
 286  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/nuug">nuug (
153)
</a></li> 
 288  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (
8)
</a></li> 
 290  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/open311">open311 (
2)
</a></li> 
 292  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (
44)
</a></li> 
 294  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/personvern">personvern (
66)
</a></li> 
 296  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/raid">raid (
1)
</a></li> 
 298  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/reprap">reprap (
11)
</a></li> 
 300  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/rfid">rfid (
2)
</a></li> 
 302  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/robot">robot (
7)
</a></li> 
 304  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/rss">rss (
1)
</a></li> 
 306  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/ruter">ruter (
4)
</a></li> 
 308  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (
2)
</a></li> 
 310  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (
30)
</a></li> 
 312  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (
4)
</a></li> 
 314  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (
4)
</a></li> 
 316  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/standard">standard (
43)
</a></li> 
 318  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (
3)
</a></li> 
 320  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (
8)
</a></li> 
 322  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (
17)
</a></li> 
 324  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (
1)
</a></li> 
 326  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/valg">valg (
8)
</a></li> 
 328  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/video">video (
38)
</a></li> 
 330  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (
4)
</a></li> 
 332  <li><a href=
"http://people.skolelinux.org/pere/blog/tags/web">web (
27)
</a></li> 
 338     <p style=
"text-align: right"> 
 339  Created by 
<a href=
"http://steve.org.uk/Software/chronicle">Chronicle v4.6
</a>