我有一条类似的管道
ffmpeg -i input.mov -f matroska - |\
ffmpeg -i - -codec copy -map 0 -reset_timestamps 1 \
-segment_time 10 -f segment output/out%03d.mov
它有效,并将输入视频分割成 10 秒长的片段文件,保存到输出文件夹中。现在我想告诉 ffmpeg 将它们传递到 stdout,以便在下一个管道中我可以连接一个脚本,根据另一个文件的存在来决定对每个片段执行什么操作
ffmpeg -i input.mov -f matroska - |\
ffmpeg -i - -codec copy -map 0 -reset_timestamps 1 \
-segment_time 10 -f segment |\
NEXT_PIPE_SCRIPT
NEXT_PIPE_SCRIPT 应该是这样的
{
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
}
这个想法是,取决于文件是否存在,一些段应该转到 /dev/null,一些段应该转到输出文件夹。
我很难把这些都整合在一起。任何帮助或建议都非常感谢