On 01/28/2021 06:30 PM, Szymon Danielczyk wrote:
I have a pipeline like this in which I simulate a video stream

ffmpeg -i input.mov -f matroska - |\
ffmpeg -i - -codec copy -map 0 -reset_timestamps 1 \
-segment_time 10 -f segment  output/out%03d.mov

which works and it is splitting the input video into 10 sec long segment files 
saved into output folder. Now I would like to instead tell ffmpeg to pass them 
to stdout so in the next pipe I can hook up a script to decide what to do which 
each segment based on a presence of another file

ffmpeg -i input.mov -f matroska - |\
ffmpeg -i - -codec copy -map 0 -reset_timestamps 1 \
-segment_time 10 -f segment |\
NEXT_PIPE_SCRIPT

The NEXT_PIPE_SCRIPT should be something like
{
TEST_FILE=".do"
if [ -f "$TEST_FILE" ]; then
      echo "$TEST_FILE exists going to redirect videos to a folder"
     >> output/$RANDOM.mov
  else
     >> /dev/null
fi
}

The idea is that depends if the file is there or not some segments should go to 
/dev/null and some to the output folder.
After much googling I've found this old thread which sais that writing 
segmented files to stdout is not supported

https://ffmpeg.org/pipermail/ffmpeg-user/2017-November/037718.html

Also I do not see any example in the ffmpeg documentation of outputing segments 
to stdout.

If this is true will anyone have an idea how to solve it in some other way?

Would it be possible for ffmpeg to output raw video frames, one file per frame, then the next (continuously running) process to pick up the files as they are created, to process them and then delete the originals on the fly? Could that be done in a script?
_______________________________________________
ffmpeg-user mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".

Reply via email to