![]() |
逃课的紫菜汤 · ArrayNode (The Adobe ...· 4 月前 · |
![]() |
体贴的可乐 · Go 语言入门实践笔记 | 青训营 - 掘金· 1 年前 · |
![]() |
腹黑的企鹅 · Redis(十一):Redis的事务功能详解 ...· 1 年前 · |
![]() |
英俊的小熊猫 · jQuery 添加元素 | 菜鸟教程· 1 年前 · |
![]() |
叛逆的豌豆 · SpringBoot ...· 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