1.后台运行nohup
nohup ffmpeg -report -fflags nobuffer -probesize 50 -analyzeduration 100 -i rtmp://127.0.0.1/live/test -f hls -c copy -hls_flags delete_segments -hls_time 1 -hls_list_size 3 -hls_segment_filename output-%05d.ts table521.m3u8 1>/dev/null 2>&1 &
nohup的介绍参照这篇文章https://mp.weixin.qq.com/s/nyT-FPdIUdJUiUCYVGEnTg
1 代表标准输出
2 代表标准错误
1>/dev/null 把标准输出导入到null设备,也就是消失不见,如果要重定向到某个文件,可以1>1.txt
2>&1 把标准错误也导入到标准输出同样的地方
-report 把ffmpeg命令行和终端的输出(标准和错误)都记录到以program-YYYYMMDD-HHMMSS.log命名的文件中,log文件会在ffmpeg所在的目录中生成,可以设置log等级和long文件名,便于查找运行很长时间才出现的错误。
2.输出到终端
666文件中 timeout 0, ret=1 是我在libavformat库里打印的log
![](https://i-blog.csdnimg.cn/blog_migrate/c87ce5af7bbc8f78cd72a2474989c29d.png)
可知,库打印的log属于标准输出,而ffmpeg.c 打印的属于标准出错,可以用2>&1指定标准出错也打印到标准输出