3

I've been playing for the last couple of days with FFMpeg and FFServer as I am considering them as candidates for livestreaming between an embedded device(with an integrated HD camera) and various clients(smartphones).

I've managed to achieve the stream using with the following config for FFServer:

HTTPPort 1234
RTSPPort 1235
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 512000             # Maximum bandwidth per client
                               # set this high enough to exceed stream bitrate
CustomLog -
NoDaemon                       # Remove this if you want FFserver to daemonize after start
<Feed feed.ffm>               # This is the input feed where FFmpeg will send
  File /tmp/feed.ffm            # video stream.
  FileMaxSize 512K
</Feed>
<Stream test.h264>                      # Output stream URL definition
   Feed feed.ffm              # Feed from which to receive video
   Format rtp
   # Video settings
   VideoCodec libvpx
   VideoSize 720x576           # Video resolution
   VideoFrameRate 60           # Video FPS
   AVOptionVideo flags +global_header  # Parameters passed to encoder
                                       # (same as ffmpeg command-line parameters)
   AVOptionVideo cpu-used 0
   AVOptionVideo qmin 10
   AVOptionVideo qmax 42
   AVOptionVideo quality good
   AVOptionAudio flags +global_header
   PreRoll 15
   StartSendOnKey
   VideoBitRate 400            # Video bitrate
   NoAudio
</Stream>

And the following FFMpeg command to send the stream to FFServer:

ffmpeg -rtbufsize 2100M -f dshow -i video="Integrated Camera" -vcodec libx264 http://127.0.0.1:1234/feed.ffm

I also have a simple Android client that plays the RTSP stream using the following URL:

rtsp://mylocalnetworkip:1235/test.h264

But now I am trying to achieve a P2P connection between the embedded device and a smartphone. This has to be over the internet(not in the LAN) and capable to achieve UDP hole punching (such as Skype does for p2p video-calling).

  1. Is this achievable with ffmpeg alone?
  2. Can ffmpeg integrate with a Stun/Turn server such as Coturn to bypass symmetric NATs?
Bogdan Emil Mariesan
  • 5,529
  • 2
  • 33
  • 57

0 Answers0