[FFserver-user] not able to replay video from .ffm recorded earlier

Yogesh Tyagi yogesh.bit2006 at gmail.com
Fri Sep 7 04:35:04 CEST 2012


On Fri, Sep 7, 2012 at 4:17 AM, Robert Steckroth
<robertsteckroth at gmail.com> wrote:
> Also, I believe there is a file size limit in the conf which will need
> to be set high. Than you will need to rotate
> the recorded file. If you do not copy and empty the file, it will
> become corrupted. Keep in mind, if you
> simply empty the file e.g. cat > temp.ts, than you need to restart the
> ffserver to insert the proper
> headers.
>
>
> On Thu, Sep 6, 2012 at 4:54 PM, Anthony Brown <av at bsbc.nb.ca> wrote:
>> On 12-09-06 04:12 PM, Yogesh Tyagi wrote:
>>
>>> so one feed can have one video or multiple videos?can I fed same feed
>>> through an instance of ffmpeg multiple times(if I do this the size of
>>> feed keeps increasing.is the feed storing duplicate videos)? In this
>>> case what will happen to the data previously fed to the feed?
>>> The problem I am facing is that sometimes my client(say ffplay) plays
>>> the file from start that was fed through ffmpeg.sometimes it does not.
>>
>>
>> You need to differentiate between a 'feed' and a 'stream'.  Feeds are inputs
>> to the server.  Each feed can be converted into multiple 'stream' formats
>> that can be output.  All of which are stored in a single ffm file.  A feed
>> is 'fed' to ffserver by an instance of ffmpeg.  Each 'video', which I take
>> to mean a separate feed is stored in a separate .ffm file.  All as specified
>> in your .conf file.
>>
>> Each 'video' requires a separate ffmpeg to 'feed' it to ffserver, and a
>> separate ffm file to store it.
>>
>>
>>> If i repeat the operation of feeding the feed through ffmpeg and
>>> accessing the file through a client then ffserver starts giving me
>>> following error:
>>>
>>> Application provided invalid, non monotonically increasing dts to
>>> muxer in stream 0(or 1)
>>> Error writing frame to output
>>
>>
>> Not sure what that means.
>>
>>
>>> Is there any way through which I can find out what has been stored in the
>>> feed?
>>
>>
>> yes, do an ffmpeg -i whatever.ffm and it will list the goodies inside.
>> Alternatively, connect to the ffserver status page
>> (http://whatever.your.server.address.is:8090/stat.html) and see what is
>> there.
>>
>> It would be easier to help if we knew what it was you were trying to
>> accomplish and exactly what you have tried (contents of ffserver.conf,
>> ffmpeg command line and output, client output etc.)
>>
>>
>> A
>> --
>>
>>
>> Anthony Brown
>> Audiovisual coordinator
>> Brunswick Street Baptist Church
>> Telephone: (506)-458-8348 (leave message)
>> Email:     av at bsbc.nb.ca
>>
>> _______________________________________________
>> ffserver-user mailing list
>> ffserver-user at ffmpeg.org
>> http://ffmpeg.org/mailman/listinfo/ffserver-user
>>
>
>
>
> --
> Bust0ut, Surgemcgee: Systems Engineer ---
> surgemcgee.com
> BudTVNetwork.com
> RadioWeedShow.com
> "Bringing entertainment to Unix"
> _______________________________________________
> ffserver-user mailing list
> ffserver-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffserver-user

my  ffserver.conf file is as follows:

Port 8091
BindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 100
MaxBandwidth 1000000
CustomLog -
NoDaemon

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

<Stream test.ts>

    Feed feed1.ffm
    Format mpegts

    AudioCodec mp2
    AudioBitRate 128k
    AudioChannels 2
    AudioSampleRate 48000
    AVOptionAudio flags +global_header

    VideoCodec libx264
    VideoBitRate 800k
    VideoFrameRate 100
    VideoSize 640x480
    AVOptionVideo coder 0
    AVOptionVideo bf 0
    AVOptionVideo flags2 +mixed_refs+fastpskip
    AVOptionVideo flags +loop
    AVOptionVideo cmp +chroma
    AVOptionVideo partitions +parti8x8+parti4x4+partp8x8+partb8x8
    AVOptionVideo me_method hex
    AVOptionVideo subq 7
    AVOptionVideo me_range 16
    AVOptionVideo g 250
    AVOptionVideo keyint_min 10
    AVOptionVideo sc_threshold 40
    AVOptionVideo i_qfactor 0.71
    AVOptionVideo b_strategy 1
    AVOptionVideo qcomp 0.6
    AVOptionVideo qmin 10
    AVOptionVideo qmax 51
    AVOptionVideo qdiff 4
    AVOptionVideo refs 3
    AVOptionVideo directpred 1
    AVOptionVideo trellis 1
    AVOptionVideo flags2 +mixed_refs+fastpskip
    AVOptionVideo wpredp 0
    AVOptionVideo flags +global_header
    AVOptionVideo bsf h264_mp4toannexb

    VideoGopSize 12

    Preroll 15
    StartSendOnKey
</Stream>

<Stream stat.html>
 Format status
 ACL allow 127.0.0.1
 ACL allow 192.168.1.27
</Stream>

<Redirect index.html>
 URL stat.html
</Redirect>


when I play test.ts from a client do I need  'fed' the feed to
ffserver by an instance of ffmpeg simultaneously or can i fed the feed
now and play the file temp.ts later.
I have tried this exercise. sometimes the client plays the file
test.ts,sometimes it does not.

One more question I want to ask is suppose I started feeding the feed
now and I start the client some time later.will the client be able to
play the file test.ts from start?

If I fed the feed to ffserver by an instance of ffmpeg muliple times
and try to play test.ts from client I start getting following errors:



Following is the command line output:

# ffserver -f /etc/ffserver.conf &
[1] 30433
yogesh at yogesh-desktop:~/Desktop$ ffserver version 0.9, Copyright (c)
2000-2011 the FFmpeg developers
  built on Aug 23 2012 13:35:01 with gcc 4.4.5
  configuration: --enable-libx264 --enable-gpl
  libavutil    51. 32. 0 / 51. 32. 0
  libavcodec   53. 42. 0 / 53. 42. 0
  libavformat  53. 24. 0 / 53. 24. 0
  libavdevice  53.  4. 0 / 53.  4. 0
  libavfilter   2. 53. 0 /  2. 53. 0
  libswscale    2.  1. 0 /  2.  1. 0
  libpostproc  51.  2. 0 / 51.  2. 0
Thu Sep  6 20:54:40 2012 FFserver started.
Thu Sep  6 20:54:50 2012 127.0.0.1 - - [GET] "/feed1.ffm HTTP/1.1" 200 4149
Thu Sep  6 20:54:53 2012 muxrate VBR, pcr every 2 pkts, sdt every 200,
pat/pmt every 40 pkts
Thu Sep  6 20:54:57 2012 muxrate VBR, pcr every 2 pkts, sdt every 200,
pat/pmt every 40 pkts
Thu Sep  6 20:55:09 2012 127.0.0.1 - - [POST] "/feed1.ffm HTTP/1.1" 200 3739648
Thu Sep  6 20:55:09 2012 192.168.1.27 - - [GET] "/test.ts HTTP/1.0" 200 2683391
Thu Sep  6 20:55:09 2012 192.168.1.27 - - [GET] "/test.ts HTTP/1.0" 200 3385007
Thu Sep  6 20:55:25 2012 muxrate VBR, pcr every 2 pkts, sdt every 200,
pat/pmt every 40 pkts
Thu Sep  6 20:55:28 2012 muxrate VBR, pcr every 2 pkts, sdt every 200,
pat/pmt every 40 pkts
Thu Sep  6 20:55:32 2012 127.0.0.1 - - [GET] "/feed1.ffm HTTP/1.1" 200 4149
Thu Sep  6 20:55:33 2012 Application provided invalid, non
monotonically increasing dts to muxer in stream 1: 2732730 >= 0
Thu Sep  6 20:55:33 2012 Error writing frame to output
Thu Sep  6 20:55:33 2012 Application provided invalid, non
monotonically increasing dts to muxer in stream 1: 2732730 >= 3003
Thu Sep  6 20:55:33 2012 Error writing frame to output
Thu Sep  6 20:55:33 2012 Application provided invalid, non
monotonically increasing dts to muxer in stream 1: 2732730 >= 6006
Thu Sep  6 20:55:33 2012 Error writing frame to output
Thu Sep  6 20:55:33 2012 Application provided invalid, non
monotonically increasing dts to muxer in stream 1: 2732730 >= 9009
Thu Sep  6 20:55:33 2012 Error writing frame to output
Thu Sep  6 20:55:33 2012 Application provided invalid, non
monotonically increasing dts to muxer in stream 1: 2732730 >= 0
Thu Sep  6 20:55:33 2012 Error writing frame to output
Thu Sep  6 20:55:33 2012 Application provided invalid, non
monotonically increasing dts to muxer in stream 1: 2732730 >= 3003
Thu Sep  6 20:55:33 2012 Error writing frame to output
Thu Sep  6 20:55:33 2012 Application provided invalid, non
monotonically increasing dts to muxer in stream 1: 2732730 >= 6006
Thu Sep  6 20:55:33 2012 Error writing frame to output
Thu Sep  6 20:55:33 2012 Application provided invalid, non
monotonically increasing dts to muxer in stream 1: 2732730 >= 9009
Thu Sep  6 20:55:33 2012 Error writing frame to output
Thu Sep  6 20:55:33 2012 Application provided invalid, non
monotonically increasing dts to muxer in stream 1: 2732730 >= 12012
Thu Sep  6 20:55:33 2012 Error writing frame to output
Thu Sep  6 20:55:33 2012 Application provided invalid, non
monotonically increasing dts to muxer in stream 1: 2732730 >= 15015
Thu Sep  6 20:55:33 2012 Error writing frame to output
Thu Sep  6 20:55:33 2012 192.168.1.27 - - [GET] "/test.ts HTTP/1.0" 200 4579
Thu Sep  6 20:55:33 2012 Application provided invalid, non
monotonically increasing dts to muxer in stream 1: 2732730 >= 12012
Thu Sep  6 20:55:33 2012 Error writing frame to output
Thu Sep  6 20:55:33 2012 Application provided invalid, non
monotonically increasing dts to muxer in stream 1: 2732730 >= 15015
Thu Sep  6 20:55:33 2012 Error writing frame to output
Thu Sep  6 20:55:33 2012 192.168.1.27 - - [GET] "/test.ts HTTP/1.0" 200 4579
Thu Sep  6 20:55:52 2012 127.0.0.1 - - [POST] "/feed1.ffm HTTP/1.1" 200 3739648


I am feeding by following command:

ffmpeg -i Sally_720x480p_2997fps_8Mbps_MP1L2_48_224.ts -vcodec libx264
-acodec mp2  -flags -global_header http://127.0.0.1:8091/feed1.ffm

Regards,
yogesh


More information about the ffserver-user mailing list