ffmpegstreamingvideo-streaminghttp-streamingffserver

Error being thrown by ffmpeg and ffserver, not getting a stream


i am trying to stream a file that I have in my directory using ffmpeg and ffserver. But an error occurs in both ffmpeg and ffserver. The following is my ffserver config file.

HTTPPort 8092
 HTTPBindAddress 0.0.0.0
 MaxHTTPConnections 2000
 MaxClients 1000
 MaxBandwidth 2000
 CustomLog -
 #NoDaemon
 NoDefaults

<Feed feed1.ffm>
  File /tmp/feed1.ffm
  FileMaxSize 20M 
  ACL allow 127.0.0.1
</Feed>

<Stream live.webm>      
  Feed feed1.ffm             
  Format webm

  AudioCodec vorbis
  AudioBitRate 64            

  VideoCodec libvpx
  VideoSize 720x576           
  VideoFrameRate 25          
  AVOptionVideo flags +global_header  
  AVOptionVideo cpu-used 0
  AVOptionVideo qmin 10
  AVOptionVideo qmax 42
  AVOptionVideo quality good
  AVOptionAudio flags +global_header
  PreRoll 15
  StartSendOnKey
  VideoBitRate 400
  AudioSampleRate 44100           
</Stream>

I am able to start ffserver properly with no problems but when i try to serve ffserver with a file using ffmpeg, this happens

ffmpeg -i sam.webm http://127.0.0.1:8092/feed1.ffm -vcodec copy
  ffmpeg version N-72738-g7630cce Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
  configuration: --enable-libvpx --enable-libvorbis --enable-libx264 --enable-gpl --enable-nonfree
  libavutil      54. 27.100 / 54. 27.100
  libavcodec     56. 41.100 / 56. 41.100
  libavformat    56. 36.100 / 56. 36.100
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 16.101 /  5. 16.101
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.100 /  1.  2.100
  libpostproc    53.  3.100 / 53.  3.100
  Trailing options were found on the commandline.
  Input #0, matroska,webm, from 'sam.webm':
  Metadata:
    title           : Sintel Trailer
    encoder         : Lavf56.25.101
  Duration: 00:00:52.21, start: 0.000000, bitrate: 305 kb/s
  Stream #0:0: Video: vp8, yuv420p, 854x480, SAR 1:1 DAR 427:240, 24 fps, 24 tbr, 1k tbn, 1k tbc (default)
Stream #0:1: Audio: vorbis, 48000 Hz, stereo, fltp (default)
[libvpx @ 0x367e180] v1.3.0
Output #0, ffm, to 'http://127.0.0.1:8092/feed1.ffm':
Metadata:
  title           : Sintel Trailer
  creation_time   : now
  encoder         : Lavf56.36.100
Stream #0:0: Audio: vorbis (libvorbis), 44100 Hz, stereo, fltp, 64 kb/s (default)
Metadata:
  encoder         : Lavc56.41.100 libvorbis
Stream #0:1: Video: vp8 (libvpx), yuv420p, 720x576 [SAR 427:300 DAR 427:240], q=10-42, 400 kb/s, 24 fps, 1000k tbn, 25 tbc (default)
Metadata:
  encoder         : Lavc56.41.100 libvpx
Stream mapping:
  Stream #0:1 -> #0:0 (vorbis (native) -> vorbis (libvorbis))
  Stream #0:0 -> #0:1 (vp8 (native) -> vp8 (libvpx))
Press [q] to stop, [?] for help
av_interleaved_write_frame(): Connection reset by peer
    Last message repeated 2 times
   frame=   14 fps=0.0 q=0.0 Lsize=      16kB time=00:00:00.56 bitrate= 234.1kbits/s dup=1 drop=0    
   video:1kB audio:2kB subtitle:0kB other streams:0kB global headers:4kB muxing overhead: 327.780670%
   Conversion failed!

And this is the message i get in ffserver when this error happens in ffmpeg.

ffserver
 ffserver version N-72738-g7630cce Copyright (c) 2000-2015 the FFmpeg developers
 built with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
 configuration: --enable-libvpx --enable-libvorbis --enable-libx264 --enable-gpl --enable-nonfree
 libavutil      54. 27.100 / 54. 27.100
 libavcodec     56. 41.100 / 56. 41.100
 libavformat    56. 36.100 / 56. 36.100
 libavdevice    56.  4.100 / 56.  4.100
 libavfilter     5. 16.101 /  5. 16.101
 libswscale      3.  1.101 /  3.  1.101
 libswresample   1.  2.100 /  1.  2.100
 libpostproc    53.  3.100 / 53.  3.100
 Mon Jun  8 18:38:28 2015 FFserver started.
 Mon Jun  8 18:38:40 2015 127.0.0.1 - - [GET] "/feed1.ffm HTTP/1.1" 200 4175
 Mon Jun  8 18:38:40 2015 [NULL @ 0x29878a0]Missing key or no key/value separator found after key 'pkt_timebase'
Mon Jun  8 18:38:40 2015 Feed '/tmp/feed1.ffm' stream number does not match registered feed
Mon Jun  8 18:38:40 2015 127.0.0.1 - - [POST] "/feed1.ffm HTTP/1.1" 200 4096

Can someone please help me?


Solution

  • If you have the file in your directory you could try to skip the feed section. This way, ffserver will make the file ready for streaming when the server gets started and you don't have to use the ffmpeg-command.

    Instead of :

    <Stream live.webm>      
    Feed feed1.ffm
    ...
    

    Use:

    <Stream live.webm>
    Format webm         #if needed
    File "sam.webm"
    ...
    

    You might want to go through the feed, if you want to manipulate the file first.