# Latency of ffmpeg mpegts output to Decklink

**URL:** <https://casparcgforum.org/t/latency-of-ffmpeg-mpegts-output-to-decklink/1675>\
**Category:** General\
**Tags:** streaming\
**Created:** [April 5, 2019, 11:12am UTC](https://casparcgforum.org/t/latency-of-ffmpeg-mpegts-output-to-decklink/1675 "2019-04-05T11:12:17Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![olzzon](https://casparcgforum.org/user_avatar/casparcgforum.org/olzzon/32/234_2.png) [@olzzon](https://casparcgforum.org/u/olzzon)\
**Post date:** [April 5, 2019, 11:12am UTC](https://casparcgforum.org/t/latency-of-ffmpeg-mpegts-output-to-decklink/1675/1 "2019-04-05T11:12:17Z")

</div>

Hi,

I´m working with the set protocol for transporting video over internet. ([https://github.com/Haivision/srt](https://github.com/Haivision/srt))And so far things looks good.

I can encode a decklink stream:  
ffmpeg -err\_detect explode -f decklink -i ‘DeckLink Quad (8)’ -fflags nobuffer -vcodec libx264 -preset veryfast -tune zerolatency -b:v 10M -maxrate 10M -bufsize 10M -f mpegts - | ~/srt/srt-live-transmit -v “file://con” “srt://:5506?mode=listener&latency=100”

And play it back on another machine with very low latency over the internet:  
./ffplay -probesize 120048 -i “srt://xx.xx.xx.xx:5506?tlpktdrop=1”

But as soon as I try to decode it to a decklink output on the same machine as the one I test replay on, I get a 4sec latency.

Here´s my decoding:  
ffmpeg -i “srt://xx.xx.xx.xx:5506?rcvlatency=100” -probesize 120048 -pix\_fmt uyvy422 -f decklink ‘DeckLink Quad (7)’

Plan is to stream from CasparCG, but right now I´m just using a separate machine until I know it´s working.

Does anyone know where the 4 sec buffer comes from?

---

<div class="post-metadata">

**Author:** ![hreinnbeck](https://casparcgforum.org/user_avatar/casparcgforum.org/hreinnbeck/32/154_2.png) [@hreinnbeck](https://casparcgforum.org/u/hreinnbeck)\
**Post date:** [April 5, 2019, 12:03pm UTC](https://casparcgforum.org/t/latency-of-ffmpeg-mpegts-output-to-decklink/1675/2 "2019-04-05T12:03:29Z")

</div>

You could try a lower bufsize and also changing to the ultrafast preset. Also you should test it locally to see if srt is adding the delay, I’m guessing srt at 100ms latency is useless anyways.

---

<div class="post-metadata">

**Author:** ![olzzon](https://casparcgforum.org/user_avatar/casparcgforum.org/olzzon/32/234_2.png) [@olzzon](https://casparcgforum.org/u/olzzon)\
**Post date:** [April 5, 2019, 6:48pm UTC](https://casparcgforum.org/t/latency-of-ffmpeg-mpegts-output-to-decklink/1675/4 "2019-04-05T18:48:22Z")

</div>

Hi Hreinnbeck,

Thanks for the response.  
As I wrote, I get perfectly low latency decoding the srt protocol using ffplay to the screen.  
I can also receive the stream and convert it locally to UDP with:

```auto
srt-live-transmit srt://xx.xx.xx.xx:5506 udp://:5001

```

and again gain, if I playback the UDP stream with:

```auto
ffplay -probesize 120048 -i “udp://:5501”

```

things plays perfectly with low latency (sub 500ms)

But if I take the same UDP stream and send it to a decklink output with:

```auto
ffmpeg -i “udp://xx.xx.xx.xx:5501” -probesize 120048 -pix_fmt uyvy422 -f decklink ‘DeckLink Quad (7)’

```

the UDP-\>Decklink adds 4 sec latency.  
I´ve tried all sorts of buffers and -fflags nobuffer etc, but haven´t found where the latency is added.

---

<div class="post-metadata">

**Author:** ![hreinnbeck](https://casparcgforum.org/user_avatar/casparcgforum.org/hreinnbeck/32/154_2.png) [@hreinnbeck](https://casparcgforum.org/u/hreinnbeck)\
**Post date:** [April 5, 2019, 7:07pm UTC](https://casparcgforum.org/t/latency-of-ffmpeg-mpegts-output-to-decklink/1675/5 "2019-04-05T19:07:45Z")

</div>

Ah, totally missed that you are talking about the decklink output delay 😃

Did some experimentation with that a few years ago. Never got an acceptable delay. Piping from ffmpeg to bmdplay worked OK. I’ll see if I can find my notes from those tests tomorrow.

---

<div class="post-metadata">

**Author:** ![pmart868](https://casparcgforum.org/user_avatar/casparcgforum.org/pmart868/32/342_2.png) [@pmart868](https://casparcgforum.org/u/pmart868)\
**Post date:** [June 5, 2020, 12:05am UTC](https://casparcgforum.org/t/latency-of-ffmpeg-mpegts-output-to-decklink/1675/6 "2020-06-05T00:05:21Z")

</div>

Hi hreinnbeck  
Any update on your previous notes with BMD and ffmpeg?  
Thank you in advance for your response.

Phillip

---

<div class="post-metadata">

**Author:** ![noumaan](https://casparcgforum.org/letter_avatar_proxy/v4/letter/n/dfb087/32.png) [@noumaan](https://casparcgforum.org/u/noumaan)\
**Post date:** [December 25, 2020, 9:10pm UTC](https://casparcgforum.org/t/latency-of-ffmpeg-mpegts-output-to-decklink/1675/7 "2020-12-25T21:10:48Z")

</div>

> [@olzzon](#):
>
> the UDP-\>Decklink adds 4 sec latency.  
> I´ve tried all sorts of buffers and -fflags nobuffer etc, but haven´t found where the latency is added.

Hi, anyone know how to reduce this stream to decklink delay ?

---

<div class="post-metadata">

**Author:** ![macbab](https://casparcgforum.org/user_avatar/casparcgforum.org/macbab/32/747_2.png) [@macbab](https://casparcgforum.org/u/macbab)\
**Post date:** [December 27, 2020, 11:25pm UTC](https://casparcgforum.org/t/latency-of-ffmpeg-mpegts-output-to-decklink/1675/8 "2020-12-27T23:25:09Z")

</div>

I was playing with a setup similar than this. The setup you are testing can be done using obs just for comparison. Obs support srt also. And you can use Obs with a BM board as output. You can encode sdi (BM) to srt with ffmpeg and decode with obs using srt://xxx.xxx.xxx.xxx:port?mode=listener in a media source settings. Also you have a slider for the network buffer adjust. (Typically 2Mbyte buffer for a local lan application) Of course, any sdi conversion adds latency over the path. You can expect typically about 57 milliseconds for a Decklink minirecorder. But The latency you report (4 sec.) seems excessive. You must be sure that such latency is not related to the network. SRT is an udp transport. First check that the network is not introducing an excessive buffer. Low cost routers are not good with UDP. Also, the ffmpeg options “-bufsize 10M” in the encoder side and "-probesize 120048 " in the decoder side modify latency. But sometimes you need to trade delay versus stability. In the receiver side, the buffer size changes the playback start moment. I suggest you try obs for decoder side because by this way you can isolate potential problems related with the ffmpeg (ffplay) bm module compilation. Good luck.

---

<div class="post-metadata">

**Author:** ![noumaan](https://casparcgforum.org/letter_avatar_proxy/v4/letter/n/dfb087/32.png) [@noumaan](https://casparcgforum.org/u/noumaan)\
**Post date:** [December 28, 2020, 9:37am UTC](https://casparcgforum.org/t/latency-of-ffmpeg-mpegts-output-to-decklink/1675/9 "2020-12-28T09:37:41Z")

</div>

Thanks macbab,  
It’s not network latency, I think it is something with ffmpeg and decklink because ffplay is playing same stream in less than a sec delay and it is not related with srt I tried TCP and others.

I think it is ffmpeg to decklink buffer which is 4 seconds by default that we have to control.

---

<div class="post-metadata">

**Author:** ![noumaan](https://casparcgforum.org/letter_avatar_proxy/v4/letter/n/dfb087/32.png) [@noumaan](https://casparcgforum.org/u/noumaan)\
**Post date:** [December 29, 2020, 8:39pm UTC](https://casparcgforum.org/t/latency-of-ffmpeg-mpegts-output-to-decklink/1675/10 "2020-12-29T20:39:47Z")

</div>

With -analyzeduration 1 getting stream on decklink with in 2 seconds before it was 4 - 5 seconds

---

<div class="post-metadata">

**Author:** ![macbab](https://casparcgforum.org/user_avatar/casparcgforum.org/macbab/32/747_2.png) [@macbab](https://casparcgforum.org/u/macbab)\
**Post date:** [December 30, 2020, 3:49am UTC](https://casparcgforum.org/t/latency-of-ffmpeg-mpegts-output-to-decklink/1675/11 "2020-12-30T03:49:41Z")

</div>

I said : \< I suggest you try obs for decoder side because by this way you can isolate potential problems related with the ffmpeg (ffplay) bm module compilation.\>  
If you try this way, then you can be sure that ffmpeg is the problem. Why i insist ? Because if your latency using this way is much lower, you can use the same ffmpeg compilation that OBS provide.  
One year ago, i was using srt decoding receiving with obs and never i had such latency.

---

<div class="post-metadata">

**Author:** ![noumaan](https://casparcgforum.org/letter_avatar_proxy/v4/letter/n/dfb087/32.png) [@noumaan](https://casparcgforum.org/u/noumaan)\
**Post date:** [December 30, 2020, 10:51am UTC](https://casparcgforum.org/t/latency-of-ffmpeg-mpegts-output-to-decklink/1675/12 "2020-12-30T10:51:26Z")

</div>

I’ll try OBS for decoding  
Thanks

---

<div class="post-metadata">

**Author:** ![sendil](https://casparcgforum.org/letter_avatar_proxy/v4/letter/s/35a633/32.png) [@sendil](https://casparcgforum.org/u/sendil)\
**Post date:** [May 28, 2022, 3:59pm UTC](https://casparcgforum.org/t/latency-of-ffmpeg-mpegts-output-to-decklink/1675/13 "2022-05-28T15:59:29Z")

</div>

Hi could anyone help me to output rtmp video to decklink card?

---

<div class="post-metadata">

**Author:** ![sendil](https://casparcgforum.org/letter_avatar_proxy/v4/letter/s/35a633/32.png) [@sendil](https://casparcgforum.org/u/sendil)\
**Post date:** [May 28, 2022, 4:00pm UTC](https://casparcgforum.org/t/latency-of-ffmpeg-mpegts-output-to-decklink/1675/14 "2022-05-28T16:00:16Z")

</div>

Hi could anyone help me to output rtmp video to bmd decklink card.

---

<div class="post-metadata">

**Author:** ![rakibhossen](https://casparcgforum.org/user_avatar/casparcgforum.org/rakibhossen/32/463_2.png) [@rakibhossen](https://casparcgforum.org/u/rakibhossen)\
**Post date:** [January 5, 2024, 9:56pm UTC](https://casparcgforum.org/t/latency-of-ffmpeg-mpegts-output-to-decklink/1675/15 "2024-01-05T21:56:11Z")

</div>

Can we play srt using casparcg latest version 2.3.3 or 2.3.4
