FFmpeg - Output Network Stream

From PiRho Knowledgebase
Jump to navigationJump to search

This article provides a practical reference for using FFmpeg to output a continuous network stream to common streaming protocols. All examples assume:

  • MPEG Transport Stream (MPEG-TS) container
  • AVC (H.264) video
  • AAC audio
  • Continuous looping (`-stream_loop -1`)
  • Real-time pacing (`-re`)
  • Direct passthrough of codecs (`-c copy`)

Overview

FFmpeg can output live network streams to protocols such as RTMP, RTSP, SRT, and IceCast.

RTMP

ffmpeg -re -stream_loop -1 -i <input.file> -c copy -flush_packets 0 -f flv rtmp://<destination.address>:1935/<output.file>

RTSP

ffmpeg -re -stream_loop -1 -i <input.file> -c copy -f rtsp rtsp://<destination.address>:554/<output.file>

SRT

ffmpeg -re -stream_loop -1 -i <input.file> -c copy -f mpegts 'srt://<destination.address>:8890/<output.file>?streamid=publish:big_buck_bunny_480p_h264_stereo_aac&pkt_size=1316'

IceCast

ffmpeg -re -stream_loop -1 -i <input.file> -c copy -f mpegts -content_type 'video/mp4' icecast://<username>:<password>@<destination.address>:8000/<output.file>

References

Further Reading