我想学习如何使用 ColdFusion 的 CFFILE 标签来读取文本文件的内容。就我而言,该文本文件是 FFMpeg 在对媒体文件进行转码时生成的进度日志。我想编写一个 ColdFusion 脚本,它会定期轮询进度日志,直到日志表明 FFMpeg 已完成其转码操作。在客户端,我可以使用 Ajax 来访问 ColdFusion 脚本并向用户显示“完成百分比”,而 FFMpeg 会执行其工作。
我让 FFMpeg 使用最新版本的 FFMpeg 现在支持的新“进度”标志来生成日志文件。下面我将向您展示使用此标志的方法,以及日志文件中生成的输出。
这是 FFMpeg 命令:
ffmpeg -i c:\my_original_file.ogg c:\my_converted_file.mp3 -progress c:\my_progress.txt
上述命令将导致 FFMpeg 生成一个名为 my_progress.txt 的日志文件。
这是它在日志文件中生成的内容:
total_size=206150
out_time_ms=51410044
out_time=00:00:51.410044
dup_frames=0
drop_frames=0
progress=continue
上述 6 行在日志文件中重复生成,值递增。
total_size=206150
out_time_ms=51410044
out_time=00:00:51.410044
dup_frames=0
drop_frames=0
progress=continue
total_size=412413
out_time_ms=102975756
out_time=00:01:42.975756
dup_frames=0
drop_frames=0
progress=continue
total_size=618363
out_time_ms=154463111
out_time=00:02:34.463111
dup_frames=0
drop_frames=0
progress=continue
total_size=824939
out_time_ms=206107189
out_time=00:03:26.107189
dup_frames=0
drop_frames=0
progress=continue
最后,当作业完成时,最后的 6 行块是日志文件中的最后一行。注意最后一行的“progress=end”:
total_size=9725902
out_time_ms=2431348011
out_time=00:40:31.348011
dup_frames=0
drop_frames=0
progress=end
我想使用 CFFILE 标记编写一个 Coldfusion 脚本,以仅读取文件的最后 6 行(无论文件有多大),并在每次浏览器通过 Ajax 调用脚本时执行此操作。最后,我需要将这些行上的值解析为变量,以便可以将一些数据返回给调用者。
我研究了 FFMpeg 的进度条,但它们使用 PHP,这对我来说很难,此外,它们解析 FFMpeg 日志文件的旧格式版本,我想使用上述较新的格式。有人可以帮忙吗?