# Countdown as Live stream

**URL:** <https://community.wowza.com/t/countdown-as-live-stream/37218>\
**Category:** Wowza Streaming Engine\
**Created:** [September 1, 2011, 12:57am UTC](https://community.wowza.com/t/countdown-as-live-stream/37218 "2011-09-01T00:57:00Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Christian\_Gerbrandt](https://avatars.discourse-cdn.com/v4/letter/c/9e8a1a/32.png) [@Christian\_Gerbrandt](https://community.wowza.com/u/Christian_Gerbrandt)\
**Post date:** [September 1, 2011, 12:57am UTC](https://community.wowza.com/t/countdown-as-live-stream/37218/1 "2011-09-01T00:57:00Z")

</div>

Ok,

I’m looking at some advice/ideas on how to approach/do the following.

We are going to live broadcast an event in a few days.

What I would like to do until then it have a Live stream running, showing a countdown until the event starts, with the name of the Event on top.

Now I’m looking at ways on how to achieve this.

I can do ffmpeg stream from the CLI (Linux server), but how would I create the source video file.

Anyone done this before, or have any inputs on how this could be done?

Thanks,

Christian

---

<div class="post-metadata">

**Author:** ![Jack\_OGara](https://avatars.discourse-cdn.com/v4/letter/j/9de0a6/32.png) [@Jack\_OGara](https://community.wowza.com/u/Jack_OGara)\
**Post date:** [September 1, 2011, 3:17am UTC](https://community.wowza.com/t/countdown-as-live-stream/37218/2 "2011-09-01T03:17:09Z")

</div>

I did this by renting a VPS server off a mate for a few bucks and installing some lowend video streaming software, xSplit worked. And then made a count down in html and streamed that with it.

Hope that helped.

---

<div class="post-metadata">

**Author:** ![Andrew\_Kennedy](https://avatars.discourse-cdn.com/v4/letter/a/ecb155/32.png) [@Andrew\_Kennedy](https://community.wowza.com/u/Andrew_Kennedy)\
**Post date:** [September 9, 2011, 1:18am UTC](https://community.wowza.com/t/countdown-as-live-stream/37218/3 "2011-09-09T01:18:53Z")

</div>

I am going to point out something, which you may not like to hear. Use technology that is appropriate for your case, making things extremely complicated because it is a ‘challenge’ really isnt the best use of your (or lets face it our) time.

How about something simple, javascript see

[http://www.shamrock.org.uk/](http://www.shamrock.org.uk/)

which is a simple counter from the date in the javascript and counts up, you could with a small yet effective tweak make this count down from a date, is there a challenge there ? yours to determine.

Shamrock.

---

<div class="post-metadata">

**Author:** ![Randall\_Auriemma](https://avatars.discourse-cdn.com/v4/letter/r/85e7bf/32.png) [@Randall\_Auriemma](https://community.wowza.com/u/Randall_Auriemma)\
**Post date:** [August 31, 2011, 11:45pm UTC](https://community.wowza.com/t/countdown-as-live-stream/37218/4 "2011-08-31T23:45:17Z")

</div>

Hi derchris,

Is it really necessary to stream the countdown? You could just put a .jpg picture of your player interface and use some Javascript to generate a countdown.

---

<div class="post-metadata">

**Author:** ![Christian\_Gerbrandt](https://avatars.discourse-cdn.com/v4/letter/c/9e8a1a/32.png) [@Christian\_Gerbrandt](https://community.wowza.com/u/Christian_Gerbrandt)\
**Post date:** [September 1, 2011, 3:35am UTC](https://community.wowza.com/t/countdown-as-live-stream/37218/5 "2011-09-01T03:35:19Z")

</div>

I played around a little since I posted here, and I’m very close to have this done.

What I have at the moment:

- bash script outputing days/hours/minutes left until given date

- use the output and create a jpeg image of it

- use that jpeg, and create a mjpeg of it

- use the mjpeg, and convert to mp4

In theory I should be able to stream the mp4 to the server.

I also have another solution which involves recording a VNC session, and convert that to mp4.

Still trying to get it done from CLI, but might also look into xsplit.

Any more suggestions?

---

<div class="post-metadata">

**Author:** ![Christian\_Gerbrandt](https://avatars.discourse-cdn.com/v4/letter/c/9e8a1a/32.png) [@Christian\_Gerbrandt](https://community.wowza.com/u/Christian_Gerbrandt)\
**Post date:** [September 1, 2011, 11:41am UTC](https://community.wowza.com/t/countdown-as-live-stream/37218/6 "2011-09-01T11:41:17Z")

</div>

I see it as a challenge.

Can have a countdown on a webpage within seconds, true.

But why not use the tech I have, and make it more interesting?

The only problem I’m facing at the moment is the actual streaming part.

I have an mp4, which plays fine on my PC with any media player, for the duration of 20 sec.

Created it using the following ffmpeg command:

```auto
ffmpeg -an -b 600000 -r 1 -i test%d.jpeg -vpre libx264-ultrafast -g 60 -f h264 -y -r 1 test.mp4

```

I used 20 jpegs and set the frame rate to 1 which produced the 20 sec. mp4 file.

Then I tried to stream it to Wowza with:

```auto
ffmpeg -vcodec h264 -an -b 600000 -r 1 -i test.mp4 -vpre libx264-ultrafast -g 60 -f flv -r 1 rtmp://localhost/live/countdown

```

Which the server accepts.

However, the ffmpeg is done right after I pressed the enter button.

Looks like it is Ignoring the fact that it should be 1 FPS.

Here is the output of ffmpeg:

```auto
FFmpeg version SVN-r26402, Copyright (c) 2000-2011 the FFmpeg developers
  built on Jun 27 2011 03:21:53 with gcc 4.4.5
  configuration: --enable-libmp3lame --enable-libopenjpeg --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libx264 --enable-nonfree --enable-gpl --enable-libfaac --enable-bzlib --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfaac --enable-libxvid --enable-version3
  libavutil 50.36. 0 / 50.36. 0
  libavcore 0.16. 1 / 0.16. 1
  libavcodec 52.108. 0 / 52.108. 0
  libavformat 52.93. 0 / 52.93. 0
  libavdevice 52. 2. 3 / 52. 2. 3
  libavfilter 1.74. 0 / 1.74. 0
  libswscale 0.12. 0 / 0.12. 0
[h264 @ 0x16ba5d0] max_analyze_duration reached
[h264 @ 0x16ba5d0] Estimating duration from bitrate, this may be inaccurate
Seems stream 0 codec frame rate differs from container frame rate: 2.00 (2/1) -> 1.00 (2/2)
Input #0, h264, from 'test.mp4':
  Duration: N/A, bitrate: N/A
    Stream #0.0: Video: h264, yuv420p, 480x160 [PAR 1:1 DAR 3:1], 1 fps, 1 tbr, 1200k tbn, 2 tbc
[buffer @ 0x174aa50] w:480 h:160 pixfmt:yuv420p
Output #0, flv, to 'rtmp://localhost/live/countdown':
  Metadata:
    encoder : Lavf52.93.0
    Stream #0.0: Video: flv, yuv420p, 480x160 [PAR 1:1 DAR 3:1], q=10-51, 600 kb/s, 1k tbn, 1 tbc
Stream mapping:
  Stream #0.0 -> #0.0
Press [q] to stop encoding
frame= 20 fps= 0 q=2.0 Lsize= 44kB time=20.00 bitrate= 18.2kbits/s
video:44kB audio:0kB global headers:0kB muxing overhead 1.220191%

```

Here is another try with output encoder set to h264:

```auto
FFmpeg version SVN-r26402, Copyright (c) 2000-2011 the FFmpeg developers
  built on Jun 27 2011 03:21:53 with gcc 4.4.5
  configuration: --enable-libmp3lame --enable-libopenjpeg --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libx264 --enable-nonfree --enable-gpl --enable-libfaac --enable-bzlib --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfaac --enable-libxvid --enable-version3
  libavutil 50.36. 0 / 50.36. 0
  libavcore 0.16. 1 / 0.16. 1
  libavcodec 52.108. 0 / 52.108. 0
  libavformat 52.93. 0 / 52.93. 0
  libavdevice 52. 2. 3 / 52. 2. 3
  libavfilter 1.74. 0 / 1.74. 0
  libswscale 0.12. 0 / 0.12. 0
[h264 @ 0x2cf85d0] max_analyze_duration reached
[h264 @ 0x2cf85d0] Estimating duration from bitrate, this may be inaccurate
Seems stream 0 codec frame rate differs from container frame rate: 2.00 (2/1) -> 1.00 (2/2)
Input #0, h264, from 'test.mp4':
  Duration: N/A, bitrate: N/A
    Stream #0.0: Video: h264, yuv420p, 480x160 [PAR 1:1 DAR 3:1], 1 fps, 1 tbr, 1200k tbn, 2 tbc
[buffer @ 0x2d850b0] w:480 h:160 pixfmt:yuv420p
[libx264 @ 0x2cfa8c0] using SAR=1/1
[libx264 @ 0x2cfa8c0] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2
[libx264 @ 0x2cfa8c0] profile Constrained Baseline, level 2.0
Output #0, h264, to 'rtmp://localhost/live/countdown':
  Metadata:
    encoder : Lavf52.93.0
    Stream #0.0: Video: libx264, yuv420p, 480x160 [PAR 1:1 DAR 3:1], q=10-51, 600 kb/s, 90k tbn, 1 tbc
Stream mapping:
  Stream #0.0 -> #0.0
Press [q] to stop encoding
frame= 20 fps= 0 q=-1.0 Lsize= 26kB time=20.00 bitrate= 10.8kbits/s
video:26kB audio:0kB global headers:0kB muxing overhead 0.000000%
frame I:1 Avg QP:10.00 size: 11896
[libx264 @ 0x2cfa8c0] frame P:19 Avg QP:10.00 size: 800
[libx264 @ 0x2cfa8c0] mb I I16..4: 74.3% 0.0% 25.7%
[libx264 @ 0x2cfa8c0] mb P I16..4: 0.4% 0.0% 0.0% P16..4: 7.4% 0.0% 0.0% 0.0% 0.0% skip:92.2%
[libx264 @ 0x2cfa8c0] final ratefactor: -13.90
[libx264 @ 0x2cfa8c0] coded y,uvDC,uvAC intra: 28.5% 0.0% 0.0% inter: 4.2% 0.0% 0.0%
[libx264 @ 0x2cfa8c0] i16 v,h,dc,p: 70% 18% 12% 0%
[libx264 @ 0x2cfa8c0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 24% 38% 12% 2% 9% 3% 5% 2% 6%
[libx264 @ 0x2cfa8c0] i8c dc,h,v,p: 100% 0% 0% 0%
[libx264 @ 0x2cfa8c0] kb/s:10.84

```

Which also gives me the following errors in the server log:

```auto
INFO session connect-pending 127.0.0.1 -
INFO session connect 127.0.0.1 -
INFO stream create - -
INFO stream publish countdown -
ERROR server comment - Zero sized function (client:1748301645:unknown): type:20 size:0:
ERROR server comment - Zero sized function (client:1748301645:unknown): type:20 size:0:
ERROR server comment - Zero sized function (client:1748301645:unknown): type:20 size:0:
ERROR server comment - Zero sized function (client:1748301645:unknown): type:20 size:0:
ERROR server comment - Zero sized function (client:1748301645:unknown): type:20 size:0:
ERROR server comment - Zero sized function (client:1748301645:unknown): type:20 size:0:
ERROR server comment - Zero sized function (client:1748301645:unknown): type:20 size:0:
ERROR server comment - AMFDataObj.deserialize[25:10]: java.nio.BufferUnderflowException
java.nio.BufferUnderflowException
        at java.nio.HeapByteBuffer.get(HeapByteBuffer.java:127)
        at java.nio.ByteBuffer.get(ByteBuffer.java:675)
        at com.wowza.wms.amf.AMFDataObj.deserialize(Unknown Source)
        at com.wowza.wms.amf.AMFDataObj.<init>(Unknown Source)
        at com.wowza.wms.amf.AMFData.deserializeInnerObject(Unknown Source)
        at com.wowza.wms.amf.AMFDataList.deserialize(Unknown Source)
        at com.wowza.wms.amf.AMFDataList.<init>(Unknown Source)
        at com.wowza.wms.request.RequestFunction.getMessage(Unknown Source)
        at com.wowza.wms.request.RequestProcessFunctions.processFunctions(Unknown Source)
        at com.wowza.wms.client.ClientWorker.processNextReq(Unknown Source)
        at com.wowza.wms.request.RTMPRequestAdapter.service(Unknown Source)
        at com.wowza.wms.server.ServerHandler.serviceRequest(Unknown Source)
        at com.wowza.wms.server.ServerHandler.handleMessageReceived(Unknown Source)
        at com.wowza.wms.server.ServerHandler.messageReceived(Unknown Source)
        at com.wowza.wms.server.ServerHandlerThreadedSession.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)
ERROR server comment - Zero sized function (client:1748301645:unknown): type:20 size:0:
ERROR server comment - Zero sized function (client:1748301645:unknown): type:20 size:0:
ERROR server comment - Zero sized function (client:1748301645:unknown): type:20 size:0:
ERROR server comment - Zero sized function (client:1748301645:unknown): type:20 size:0:
ERROR server comment - Zero sized function (client:1748301645:unknown): type:20 size:0:
ERROR server comment - Zero sized function (client:1748301645:unknown): type:20 size:0:
ERROR server comment - Zero sized function (client:1748301645:unknown): type:20 size:0:
ERROR server comment - Zero sized function (client:1748301645:unknown): type:20 size:0:
ERROR server comment - Zero sized function (client:1748301645:unknown): type:20 size:0:
ERROR server comment - Zero sized function (client:1748301645:unknown): type:20 size:0:
ERROR server comment - Zero sized function (client:1748301645:unknown): type:20 size:0:
ERROR server comment - Zero sized function (client:1748301645:unknown): type:20 size:0:
ERROR server comment - Zero sized function (client:1748301645:unknown): type:20 size:0:
ERROR server comment - Zero sized function (client:1748301645:unknown): type:20 size:0:
ERROR server comment - Zero sized function (client:1748301645:unknown): type:20 size:0:
ERROR server comment - Zero sized function (client:1748301645:unknown): type:20 size:0:
ERROR server comment - Zero sized function (client:1748301645:unknown): type:20 size:0:
ERROR server comment - Zero sized function (client:1748301645:unknown): type:20 size:0:
ERROR server comment - Zero sized function (client:1748301645:unknown): type:20 size:0:
ERROR server comment - Zero sized function (client:1748301645:unknown): type:20 size:0:
ERROR server comment - Zero sized function (client:1748301645:unknown): type:20 size:0:
ERROR server comment - Zero sized function (client:1748301645:unknown): type:20 size:0:
ERROR server comment - Zero sized function (client:1748301645:unknown): type:20 size:0:
ERROR server comment - Zero sized function (client:1748301645:unknown): type:20 size:0:
ERROR server comment - Zero sized function (client:1748301645:unknown): type:20 size:0:
INFO stream unpublish countdown -
INFO stream destroy countdown -
INFO session disconnect 1748301645 -

```

Anyone know how I can get ffmpeg to stream for the entire duration of the file, which should be 20 sec. ?
