如何通过编程方式停止FFmpeg进程,替代Ctrl+C且保证视频正常?
TikTok直播流下载后视频无法正常播放问题
我使用ShellJS执行FFmpeg命令下载TikTok直播流,代码如下:
const shell = require("shelljs"); const processShell = shell.exec( `ffmpeg -i "https://pull-hls-f16-va01.tiktokcdn.com/game/stream-2998228870023348312_or4/index.m3u8?expire=1728629296&session_id=000-2024092706481532076B1319E1100113F8&sign=1016b521d08053bc0ae8eddb0881b029" -movflags use_metadata_tags -map_metadata 0 -metadata title="Chill chill kiếm kèo Warthunder" -metadata artist="bacgaucam" -metadata year="2024" -c copy "downloads/bacgaucam-927202491939.mp4" -n -stats -hide_banner -loglevel error`, { async: true } ); setTimeout(() => { // processShell.kill(); process.exit(); }, 20000);
目前只有通过Ctrl+C手动停止进程时,生成的视频才能正常播放。我已经尝试过以下方法终止进程,但均无效:
process.exit().kill(pid, "SIGINT")- ShellJS的
kill方法 - fluent-ffmpeg的
kill方法 - child_process的spawn相关方法
需要测试的话,可联系我获取有效直播URL,或克隆指定仓库。恳请提供技术帮助,谢谢!
内容的提问来源于stack exchange,提问作者bee
相关产品推荐
相关产品推荐

