Re: [FFmpeg-user] Use ffmpeg to delay webcam feed with dshow displayed locally

2019-02-15 Thread Ted Park
> I'm curious though, what happens function / command wise when you hit the 
> pause key because this ends up producing the results I'm looking for.  When 
> you hit the pause key and then 10 seconds un-pause it, you end up with a live 
> stream which is 10 seconds delayed.
I don’t know, but it isn’t ffmpeg that does this. It must be the sdl library.

> I guess what you are saying is there is not a good way to replicate that 
> using the filters or other options?
It’s something I would have used ffserver for, now I don’t think there’s a way 
without writing to an intermediate streaming format.

> Ok, I will try to get this delay with a file, or something like that.
And it doesn’t have to be a regular file, it shouldn’t be if you don’t want a 
full recording. You could pipe a stream to another FFmpeg, write to a fifo, 
unix socket, something that functions as a circular buffer.
___
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

Re: [FFmpeg-user] Use ffmpeg to delay webcam feed with dshow displayed locally

2019-02-14 Thread scott denton
 Hi Ted,
Thanks again for all your suggestions.  Ok, I will try to get this delay with a 
file, or something like that.
I'm curious though, what happens function / command wise when you hit the pause 
key because this ends up producing the results I'm looking for.  When you hit 
the pause key and then 10 seconds un-pause it, you end up with a live stream 
which is 10 seconds delayed.
I guess what you are saying is there is not a good way to replicate that using 
the filters or other options?
Scott


On Thursday, February 14, 2019, 1:28:59 PM PST, Ted Park 
 wrote:  
 
 > ./ffmpeg.exe -f dshow -video_size 160x120 -framerate 30 -i video="Integrated 
 > Webcam" -filter setpts=expr=PTS+10/TB -pix_fmt yuv420p -f sdl
ohhh wait. SDL gives you a hw surface to draw on if I understand correctly? So 
it will happily gobble up frames and draw them fast as it can whenever it gets 
it, I doubt they are even timestamped.

You need the 10 seconds of delayed frames to be stored anyway (I was thinking 
of keeping them in memory) so I would say just write to file and play back 
after delay. There is no output at realtime function.
___
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".  
___
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

Re: [FFmpeg-user] Use ffmpeg to delay webcam feed with dshow displayed locally

2019-02-14 Thread Ted Park
> ./ffmpeg.exe -f dshow -video_size 160x120 -framerate 30 -i video="Integrated 
> Webcam" -filter setpts=expr=PTS+10/TB -pix_fmt yuv420p -f sdl
ohhh wait. SDL gives you a hw surface to draw on if I understand correctly? So 
it will happily gobble up frames and draw them fast as it can whenever it gets 
it, I doubt they are even timestamped.

You need the 10 seconds of delayed frames to be stored anyway (I was thinking 
of keeping them in memory) so I would say just write to file and play back 
after delay. There is no output at realtime function.
___
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

Re: [FFmpeg-user] Use ffmpeg to delay webcam feed with dshow displayed locally

2019-02-14 Thread scott denton
 Hi Ted,
Thank you - I definitely appreciate all of the suggestions.  It seems like with 
the cue filter, frames are getting buffered and then at the end of the start 
delay, they all play through really quickly. It makes me wonder if there isn't 
some index that needs to be updated to basically tell it to not start at the 
beginning, but somewhere in the middle of the buffer.  You can see I tried 
using setpts in combination with the cue filter, and also tried adding the fifo 
statement but I really don't know how any of these interact.  I'm wondering if 
there is some combination of buffer filter and cue filter?  I'm having a hard 
time getting the buffer statement to work.

I tried all of the following (and more), but with no success.  

All of the following just shows live input:
./ffmpeg.exe -f dshow -video_size 160x120 -framerate 30 -i video="Integrated 
Webcam" -filter setpts=expr=PTS+10/TB -pix_fmt yuv420p -f sdl2 "SDL_OUT"

$ ./ffmpeg.exe -f dshow -video_size 160x120 -framerate 30 -i video="Integrated 
Webcam" -filter setpts='expr=PTS+10/(TB*100)' -pix_fmt yuv420p -f sdl2 
"SDL_OUT"

 $ ./ffmpeg.exe -f dshow -video_size 160x120 -framerate 30 -i video="Integrated 
Webcam" -filter setpts='(RTCTIME-RTCSTART+10)/(TB*100)' -pix_fmt yuv420p -f 
sdl2 "SDL_OUT"

$ ./ffmpeg.exe -f dshow -video_size 160x120 -framerate 30 -i video="Integrated 
Webcam" -filter setpts='(RTCTIME-RTCSTART-10)/(TB*100)' -pix_fmt yuv420p -f 
sdl2 "SDL_OUT"

All of the following shows a delayed start to the video (blank white screen), 
then realtime video:
export this_date=`date +%s`;this_date=`echo 
\($this_date+10\)*100|bc`;./ffmpeg.exe -f dshow -video_size 160x120 
-framerate 30 -i video="Integrated Webcam" -filter 
cue=cue=$this_date:buffer=20,setpts='(RTCTIME-RTCSTART+10)/(TB*100)' 
-pix_fmt yuv420p -f sdl2 "SDL_OUT"

export this_date=`date +%s`;this_date=`echo 
\($this_date+10\)*100|bc`;./ffmpeg.exe -f dshow -video_size 160x120 
-framerate 30 -i video="Integrated Webcam" -filter 
setpts='(RTCTIME-RTCSTART+10)/(TB*100)',cue=cue=$this_date:buffer=20 
-pix_fmt yuv420p -f sdl2 "SDL_OUT"

export this_date=`date +%s`;this_date=`echo 
\($this_date+5\)*100|bc`;./ffmpeg.exe -f dshow -video_size 160x120 
-framerate 30 -i video="Integrated Webcam" -filter 
fifo,cue=cue=$this_date:buffer=20 -pix_fmt yuv420p -f sdl2 "SDL_OUT"



On Thursday, February 14, 2019, 5:23:20 AM PST, Ted Park 
 wrote:  
 
 > It shows a white output screen for 10 seconds, then it shows what appears to 
 > be a very fast set of "catchup" frames for a fraction of a second, then 
 > shows the live video stream again with no delay.

Oh. :s Does chaining setpts=expr=PTS+$DELAY/TB work? (Sorry I’m throwing all 
the spaghetti against the wall till something sticks) 

___
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".  
___
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

Re: [FFmpeg-user] Use ffmpeg to delay webcam feed with dshow displayed locally

2019-02-14 Thread Ted Park
> It shows a white output screen for 10 seconds, then it shows what appears to 
> be a very fast set of "catchup" frames for a fraction of a second, then shows 
> the live video stream again with no delay.

Oh. :s Does chaining setpts=expr=PTS+$DELAY/TB work? (Sorry I’m throwing all 
the spaghetti against the wall till something sticks) 

___
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

Re: [FFmpeg-user] Use ffmpeg to delay webcam feed with dshow displayed locally

2019-02-13 Thread scott denton
 Hi Ted,
Thank you so much for your help and suggestions.  I tried a few different 
permutations of what you recommended, but without luck.  :( 

It seems that nothing I'm trying does anything other than *delay the start* of 
the video.  The video itself still isn't delayed.  

For example, I tried the following command:export this_date=`date 
+%s`;this_date=`echo \($this_date+10\)*100|bc`;./ffmpeg.exe -f dshow 
-video_size 160x120 -framerate 30 -i video="Integrated Webcam" -pix_fmt yuv420p 
-filter:v cue=cue=$this_date:buffer=20 -f sdl2 "SDL OUT"

It shows a white output screen for 10 seconds, then it shows what appears to be 
a very fast set of "catchup" frames for a fraction of a second, then shows the 
live video stream again with no delay.
Commandline output is below.  Thanks again for your help with this!
-Scott
** Commandline output**
 libavcodec 58. 46.100 / 58. 46.100
  libavformat    58. 26.100 / 58. 26.100
  libavdevice    58.  6.101 / 58.  6.101
  libavfilter 7. 48.100 /  7. 48.100
  libswscale  5.  4.100 /  5.  4.100
  libswresample   3.  4.100 /  3.  4.100
  libpostproc    55.  4.100 / 55.  4.100
Input #0, dshow, from 'video=Integrated Webcam':
  Duration: N/A, start: 93371.403000, bitrate: N/A
    Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 160x120, 30 fps, 
30 tbr, 1k tbn, 1k tbc
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> rawvideo (native))
Press [q] to stop, [?] for help
Output #0, sdl,sdl2, to 'SDL OUT':
  Metadata:
    encoder : Lavf58.26.100
    Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 160x120, q=2-31, 
6912 kb/s, 30 fps, 30 tbn, 30 tbc
    Metadata:
  encoder : Lavc58.46.100 rawvideo
[sdl,sdl2 @ 0257dc497180] Application provided invalid, non monotonically 
increasing dts to muxer in stream 0: 73 >= 73
[sdl,sdl2 @ 0257dc497180] Application provided invalid, non monotonically 
increasing dts to muxer in stream 0: 84 >= 84
[sdl,sdl2 @ 0257dc497180] Application provided invalid, non monotonically 
increasing dts to muxer in stream 0: 97 >= 97
[sdl,sdl2 @ 0257dc497180] Application provided invalid, non monotonically 
increasing dts to muxer in stream 0: 109 >= 109
[sdl,sdl2 @ 0257dc497180] Application provided invalid, non monotonically 
increasing dts to muxer in stream 0: 120 >= 120
[sdl,sdl2 @ 0257dc497180] Application provided invalid, non monotonically 
increasing dts to muxer in stream 0: 133 >= 133
[sdl,sdl2 @ 0257dc497180] Application provided invalid, non monotonically 
increasing dts to muxer in stream 0: 144 >= 144
[sdl,sdl2 @ 0257dc497180] Application provided invalid, non monotonically 
increasing dts to muxer in stream 0: 252 >= 252
[sdl,sdl2 @ 0257dc497180] Application provided invalid, non monotonically 
increasing dts to muxer in stream 0: 264 >= 264
[sdl,sdl2 @ 0257dc497180] Application provided invalid, non monotonically 
increasing dts to muxer in stream 0: 276 >= 276
[sdl,sdl2 @ 0257dc497180] Application provided invalid, non monotonically 
increasing dts to muxer in stream 0: 289 >= 289
[sdl,sdl2 @ 0257dc497180] Application provided invalid, non monotonically 
increasing dts to muxer in stream 0: 300 >= 300
[sdl,sdl2 @ 0257dc497180] Application provided invalid, non monotonically 
increasing dts to muxer in stream 0: 312 >= 312
av_interleaved_write_frame(): I/O errore=00:00:13.66 bitrate=N/A speed=   1x
frame=  423 fps= 30 q=-0.0 Lsize=N/A time=00:00:14.16 bitrate=N/A speed=   1x





On Wednesday, February 13, 2019, 6:50:32 AM PST, Ted Park 
 wrote:  
 
 > Hi - it very well might, but I'm not sure how to combine those.  Would you 
 > be willing to give me an example?

There is a buffer parameter for the cue filter, you can just set it a 
reasonable number of seconds bigger than your delay introduced by cue. In bash, 
you can set something like

cue=cue=(`date +%s`+$DELAY)*100:buffer=20

(The cue timestamp is in microseconds)
___
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".  
___
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

Re: [FFmpeg-user] Use ffmpeg to delay webcam feed with dshow displayed locally

2019-02-13 Thread Ted Park
> Hi - it very well might, but I'm not sure how to combine those.  Would you be 
> willing to give me an example?

There is a buffer parameter for the cue filter, you can just set it a 
reasonable number of seconds bigger than your delay introduced by cue. In bash, 
you can set something like

cue=cue=(`date +%s`+$DELAY)*100:buffer=20

(The cue timestamp is in microseconds)
___
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

Re: [FFmpeg-user] Use ffmpeg to delay webcam feed with dshow displayed locally

2019-02-12 Thread scott denton
Hi - it very well might, but I'm not sure how to combine those.  Would you be 
willing to give me an example?

Thanks again!



On Tue, 2/12/19, Ted Park  wrote:

 Subject: Re: [FFmpeg-user] Use ffmpeg to delay webcam feed with dshow 
displayed locally
 To: "FFmpeg user questions" 
 Date: Tuesday, February 12, 2019, 12:18 PM
 
 Oh. I thought you had the
 opposite problem for some reason. Using cue with buffer
 didn’t do this for you?
 ___
 ffmpeg-user mailing list
 ffmpeg-user@ffmpeg.org
 http://ffmpeg.org/mailman/listinfo/ffmpeg-user
 
 To unsubscribe, visit link
 above, or email
 ffmpeg-user-requ...@ffmpeg.org
 with subject
 "unsubscribe".
___
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

Re: [FFmpeg-user] Use ffmpeg to delay webcam feed with dshow displayed locally

2019-02-12 Thread Ted Park
Oh. I thought you had the opposite problem for some reason. Using cue with 
buffer didn’t do this for you?
___
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

Re: [FFmpeg-user] Use ffmpeg to delay webcam feed with dshow displayed locally

2019-02-12 Thread scott denton
 Hi Ted,
Thanks for your quick response!  I tried this, and it basically popped up the 
video window and left it blank for a while, then transitioned directly to a 
non-delayed video feed.ffmpeg.exe -f dshow -video_size 160x120 -framerate 30 -i 
video="Integrated Webcam" -pix_fmt yuv420p -filter:v tpad=start_duration=500 -f 
sdl2 "SDL OUT"
I also tried the following which cloned the first frame for a while, then went 
to a non-delayed video feed:ffmpeg.exe -f dshow -video_size 160x120 -framerate 
30 -i video="Integrated Webcam" -pix_fmt yuv420p -filter:v 
tpad=start=2000:start_mode=clone -f sdl2 "SDL OUT"
So neither one appears to be actually delaying the full video feed - only 
delaying the *start* of the video which then jumps back to real time after that 
initial delay.
Am I implementing the tpad filter the way you were thinking?
Thanks again for your help!!
Scott
   On Tuesday, February 12, 2019, 10:50:08 AM PST, Ted Park 
 wrote:  
 
 > On Feb 12, 2019, at 12:44 PM, scott denton 
 >  wrote:
> 
> I have tried to use various filters such as cue, loop, and buffer, as well as 
> itsoffset but haven't been able to get it to actually delay.

Try the tpad filter.
___
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".  
___
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

Re: [FFmpeg-user] Use ffmpeg to delay webcam feed with dshow displayed locally

2019-02-12 Thread Ted Park
> On Feb 12, 2019, at 12:44 PM, scott denton 
>  wrote:
> 
> I have tried to use various filters such as cue, loop, and buffer, as well as 
> itsoffset but haven't been able to get it to actually delay.

Try the tpad filter.
___
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".