强悍的毛衣 · python中的嵌套类(内部类调用外部类中的 ...· 7 月前 · |
有胆有识的便当 · Linux下Cassandra集群搭建_ur ...· 1 年前 · |
鬼畜的可乐 · 使用Automatic1111在本地PC上运 ...· 1 年前 · |
才高八斗的饺子 · 基于nodejs多个html共享变量,Nod ...· 1 年前 · |
慷慨的圣诞树 · 正则表达式-匹配各种特殊字符_正则表达式匹配 ...· 1 年前 · |
我在用ffmpeg重放一个实时的饲料。不幸的是,输入分辨率偶尔会发生变化,但是ffmpeg继续运行。我使用的nginx服务器不能很好地处理这个问题,并且继续使用音频流,但是视频大多是黑色或绿色的,带有一些工件。
理想情况下,我想要的是在输入分辨率更改时停止ffmpeg,因为我有一个脚本来检测ffmpeg停止并重新启动它。
我在我的ffmpeg命令中使用了-c:v副本,因为不幸的是,我的机器不够强大,无法动态地将实时视频重新编码到一个恒定的分辨率(至少在没有显著质量下降的情况下)。
ffmpeg -i "http://mpegts-live-stream" -c:v copy -c:a aac -ac 2 -f flv "rtmp://nginxserver/live/streamname"
发布于 2022-10-22 11:13:13
因此,ffmpeg不能检测流复制过程中输入参数的变化,但我们可以通过向进程添加最小的解码负载来解决这一问题。
ffmpeg -xerror -skip_frame:v nokey -flags:v +drop_changed -i "http://mpegts-live-stream" -c:v copy -c:a aac -ac 2 -f flv "rtmp://nginxserver/live/streamname" -an -f null -
-xerror
:错误时退出
-skip_frame:v nokey
:仅解码视频流的关键帧
-flags:v +drop_changed
:当参数(如分辨率)发生变化时,下降帧和信号误差
-an -f null -
:映射需要解码流的视频输出流,否则不会发生解码。
https://stackoverflow.com/questions/74162777
复制相似问题
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2024 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287