nginx - 如何防止ffmpeg转码从低质量到高质量?
问题描述
我使用 nginx 构建直播服务器并使用 exec 命令运行 ffmpeg 进行转码,但我不希望输入流的转码质量为 640x360,输出流转码的质量为 1280x720。
这是我用来转码的命令:
exec /usr/bin/ffmpeg -i rtmp://localhost:1935/$app/$name -c:a aac -b:a 96k -c:v libx264 -vf "scale='if(gte(iw,ih),-2,360)':'if(gte(iw,ih),360,-2)'" -f flv rtmp://localhost:1935/360p/$name;
我想要的结果是,如果输入流的质量为 1280x720 或 640x360,则转码正常,但如果输入流的质量为 160x120,则不要转码
提前致谢。
解决方案
您将需要添加一个步骤来探测传入流以获取属性。然后编写程序或脚本来决定和创建输出设置。
推荐阅读
- html - 如何自动添加分隔符(逗号)实时计算公式
- r - R:如果编织成 HTML,可能只运行一个 plotly 块,如果编织成 PDF 或 DOCX,只运行一个 ggplot2 块?
- sql - SQL 查询结构
- javascript - 用户输入路线名称后如何动态创建快速路线
- appium-ios - 如何从 IOS 中的自动化脚本 (Appium) 启动已开发的应用程序,其中有一个不受信任的开发人员
- spring-cloud-loadbalancer - Spring Cloud Load Balancer 多种配置
- mysql - 如何根据条件中的值仅显示行?
- angularjs - AngularJS:清除某些元素上的验证错误
- c# - C#:起订量:消息:System.NotSupportedException:不支持的表达式:item => item.RouteId 不可覆盖的成员
- node.js - 在大数据中替换字符串数组中的子字符串 mongodb V4.2