Hi Spectragr, welcome to the Forum and thank you for using FFAStrans!
yes i have such workflows. In a professional environment, such workflows are not exactly easy to support because it is hard to check if the process actually worked or we got a too short output file (finding the reason for the too short output file is a special topic on its own)
You'll need to fulfill some basics for start:
*) the incoming file format/container can be processed as growing (e.g. mxf, mkv or mp4/mov with faststart)
*) the writing application allows other applications to read the file while it is being written (open file shared for reading)
*) the writing application writes actually a growing file (e.g. windows copy does NOT work for such workflow because it allocates the whole file size before writing the file, ending up in a "not growing" file)
*) the writing application does not attemt to rename the written file when it is done
*) the writing application does not pause writing data to the growing file for more than a second or so
*) the storage, protocol and drivers support such operations (you need to trial and error)
If you fulfill all these requirements, congrats, you can read on
*) For Watchfolder based workflows, we need to check the "Skip source verification" option. This way the job is started without waiting for the file to be "writeable"
*) We need a pure ffmpeg workflow for this and we need to put one option before the "-i" option of ffmpeg: "-follow 1", see the file protocol documentation:
https://ffmpeg.org/ffmpeg-protocols.html#file. Additionally/optionally we could influence the time that ffmpeg waits for new data using the rw_timeout option.
*) Unfortunately we cannot yet influence the internal ffastrans encoding commands, we need to use a commandline processor for encoding
*) for testing the whole thing, you can also simulate a growing file using the windows type command. "type INPUTFILE > OUTPUTFILE"
Practical example:
*) Create a new workflow with a commandline processor and this content:
Code: Select all
"%s_ffmpeg%" -follow 1 -i "%s_source%" c:\temp\output.mxf -y
*) Simulate a growing file (limit speed to realtime) using the following commandline:
Code: Select all
ffmpeg -re -f lavfi -i mandelbrot c:\temp\growing.mxf
*) Submit the growing file (c:\temp\growing.mxf) to the commandline processor
This way you should have successfully simulated a growing file workflow. Now you can alter the workflow, add a monitor node, check "skip source verification" and add your encoding settings and the correct output path to the ffmpeg command in the cmd processor.
Sidenote: if you record from SDI, you can potentially use ffmpeg directly for recording and transcoding in a single step