[FFmpeg-trac] #928(undetermined:new): ffmpeg libdc1394 camera live mpeg streaming stops a specific frame number
FFmpeg
trac at avcodec.org
Thu Jan 19 14:30:50 CET 2012
#928: ffmpeg libdc1394 camera live mpeg streaming stops a specific frame number
-------------------------------------+-------------------------------------
Reporter: Zax | Type: defect
Status: new | Priority: minor
Component: | Version: git-
undetermined | master
Keywords: libdc1394 | Blocked By:
ffserver live streaming | Reproduced by developer: 0
Blocking: |
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
I was trying to stream live video from a dc1394 camera by using ffmpeg and
ffserver. I was successful in streaming the video; however, the stream
freezes/stops/hangs after a specific time (00:02:23.06) or frame (2146).
I have tried to debug the problem and noticed that after the 2146th frame
"vdelta" in "do_video_out" at "ffmpeg.c" goes negative. Moreover, each
frame increment causes it to decrement further. The reason vdelta goes
negative is "ost->sync_ist->pts" of input variable "const OutputStream
*ost" in do_video_out changes sign.
So, I have made some modifications in "do_video_out" and "get_sync_ipts"
and temporarily solved the negative vdelta problem. You can find the
changed functions in the attachment.
Though I have solved my problem, the bug ("ost->sync_ist->pts" goes
negative) still exits. I hope my comments are helpful.
----
Here is my ffmpeg commands and ffserver conf file.
{{{
# ffmpeg -loglevel debug -v verbose -f libdc1394 -i hw:0,0 -vcodec mpeg4
-b:v 10000k -bufsize 150000k -r 5 http://127.0.0.1:8090/feed1.ffm
}}}
{{{
# ffserver -loglevel debug -f ffs.conf
}}}
{{{
Port 8090
# bind to all IPs aliased or not
BindAddress 0.0.0.0
# max number of simultaneous clients
MaxClients 4
# max bandwidth per-client (kb/s)
MaxBandwidth 10000000 s
# Suppress that if you want to launch ffserver as a daemon.
NoDaemon
<Feed feed1.ffm>
File /tmp/feed1.ffm
FileMaxSize 2000M
ACL allow 127.0.0.1
</Feed>
# mpeg
<Stream test.mpg>
# the source feed
Feed feed1.ffm
# the output stream format - FLV = FLash Video
Format mpegts
VideoCodec mpeg4
AVOptionVideo maxrate 1000000k
AVOptionVideo qmin 1
AVOptionVideo qmax 31
AVOptionVideo bufsize 100000k
# this must match the ffmpeg -r argument
VideoFrameRate 15
VideoSize 320x240
StartSendOnKey
VideoGopSize 20
VideoHighQuality
Video4MotionVector
Strict -1
# this sets how many seconds in past to start
PreRoll 0
# don't have audio
Noaudio
ACL allow localhost
ACL allow 192.168.0.0 192.168.255.255
</Stream>
<Stream stat.html>
Format status
ACL allow localhost
ACL allow 192.168.0.0 192.168.255.255
</Stream>
}}}
--
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/928>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list