video - 使用 ffmpeg 保持电视格式的纵横比
问题描述
我正在尝试将屏幕图像捕获到 ffmpeg 中的管道中并创建视频。这是它的工作原理:
-f lavfi -i anullsrc=r=48000:cl=stereo -f image2pipe -r 25 -i pipe: -target pal-dv25 -vcodec dvvideo -vf yadif=1:-1:0,interlace=bff,setdar=1.85:1 -flags +ildct+ilme -c:a pcm_s16le -maxrate 5000k -r 25 -f mov -shortest -map 0:a -map 1:v -y out.mov
问题是图像的分辨率为 16:9,我在 Mediainfo 的 original_aspect_ratio 行中得到16:9 ,dar=1.85:1,但我还需要4:3,dar=1.85:1。
我怎样才能做到这一点?我试图改变输入图像的比例,-aspect 4:3
但这导致视频的分辨率只有 4:3 而没有 dar=1.85:1
解决方案
您需要将输入视频缩放为 4:3 比例,然后将 DAR 设置为 1.85,ffmpeg 将自动选择 SAR 以匹配此参数。这是您的过滤器的外观:
scale=4/3*ih:ih,setdar=1.85
推荐阅读
- java - 与 JavaFX 控制器相比,如何在 Spring MVC 中正确定义控制器
- python - 如何打印多个函数的返回值?
- c# - 扫描特定区域的像素
- matplotlib - 如何使用networkx将两个图形合二为一?
- java - 这个 Android LiveData/Threading 代码是否有可能给出某种并发问题或意外结果?
- javascript - React 组件正在重新安装任何父状态更改。不知道为什么
- javascript - Android webview - 如何从外部存储中获取文件
- vuejs3 - vue3:显示完整对象很好的奇怪情况,但访问其元素之一返回未定义
- javascript - 更改文本颜色,ini
- reactjs - 无法从反应到表达的仅一条路线获取数据