用于裁剪和转置视频的 FFMPEG 命令放大后质量较差

2024-05-11

我正在尝试将尺寸通常为 960x720 的 mp4 视频转换为方形 480:480 视频,但它通常看起来被压扁,命令是

"-y -i %s -vf crop=480:480,transpose=%d -threads 5 -metadata:s:v rotate=0 -c:v libx264 -crf 27 -preset ultrafast -c:a copy -bsf:a aac_adtstoasc %s";

我错过了什么吗?我需要先缩小规模还是什么?

**编辑添加完整的控制台输出。 ffmpeg 命令已更新,但目标仍然保持不变,拍摄任意视频并对其进行方形裁剪

07-14 22:30:32.813: D/ffmpeg(30354): -y -i /data/data/com.myapp.app/cache:temp/i7h4ajm0nim1mbcnrqotvrhhsc.mp4 -vf scale=iw*sar:ih,transpose=1 -threads 5 -metadata:s:v rotate=0 -c:v libx264 -crf 27 -preset ultrafast -c:a copy -bsf:a aac_adtstoasc -aspect 1:1 /data/data/com.myapp.app/cache:temp/p1t3bhs0oa3lpqa67g5i9ninm9.ts
07-14 22:30:32.903: D/ffmpeg(30354): new time reamining 9283
07-14 22:30:32.913: D/FFmpeg(30354): Running publishing updates method
07-14 22:30:35.963: D/ffmpeg(30354): WARNING: linker: /data/data/com.myapp.app/files/ffmpeg has text relocations. This is wasting memory and prevents security hardening. Please fix.
07-14 22:30:35.963: D/ffmpeg(30354): ffmpeg version n2.4.2 Copyright (c) 2000-2014 the FFmpeg developers
07-14 22:30:35.963: D/ffmpeg(30354):   built on Jun  3 2015 21:56:01 with gcc 4.8 (GCC)
07-14 22:30:35.963: D/ffmpeg(30354):   configuration: --target-os=linux --cross-prefix=/Users/Brian1/development/ffmpeg-android/toolchain-android/bin/arm-linux-androideabi- --arch=arm --cpu=cortex-a8 --enable-runtime-cpudetect --sysroot=/Users/Brian1/development/ffmpeg-android/toolchain-android/sysroot --enable-pic --enable-small --enable-libx264 --enable-pthreads --disable-muxers --enable-muxer=mpegts --enable-muxer=mp4 --disable-demuxers --enable-demuxer=mpegts --enable-demuxer=mov --enable-demuxer=mpeg --enable-demuxer=mp4 --disable-debug --disable-decoders --enable-decoder=h264 --enable-decoder=aac --disable-devices --disable-encoders --enable-encoder=libx264 --disable-network --disable-ffserver --enable-version3 --enable-hardcoded-tables --disable-ffplay --disable-ffprobe --enable-gpl --enable-yasm --disable-doc --disable-shared --enable-static --pkg-config=/Users/Brian1/development/ffmpeg-android/ffmpeg-pkg-config --prefix=/Users/Brian1/development/ffmpeg-android/build/armeabi-v7a-neon --extra-cflags='-I/Users/Brian1/development/ffmpeg-android/toolchain-android/include -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fstack-protector-all -mfpu=neon' --extra-ldflags='-L/Users/Brian1/development/ffmpeg-android/toolchain-android/lib -Wl,-z,relro -Wl,-z,now -pie' --extra-libs=-lm --extra-cxxflags=
07-14 22:30:35.963: D/ffmpeg(30354):   libavutil      54.  7.100 / 54.  7.100
07-14 22:30:35.963: D/ffmpeg(30354):   libavcodec     56.  1.100 / 56.  1.100
07-14 22:30:35.963: D/ffmpeg(30354):   libavformat    56.  4.101 / 56.  4.101
07-14 22:30:35.963: D/ffmpeg(30354):   libavdevice    56.  0.100 / 56.  0.100
07-14 22:30:35.963: D/ffmpeg(30354):   libavfilter     5.  1.100 /  5.  1.100
07-14 22:30:35.963: D/ffmpeg(30354):   libswscale      3.  0.100 /  3.  0.100
07-14 22:30:35.963: D/ffmpeg(30354):   libswresample   1.  1.100 /  1.  1.100
07-14 22:30:35.963: D/ffmpeg(30354):   libpostproc    53.  0.100 / 53.  0.100
07-14 22:30:35.963: D/ffmpeg(30354): Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/data/data/com.myapp.app/cache:temp/i7h4ajm0nim1mbcnrqotvrhhsc.mp4':
07-14 22:30:35.963: D/ffmpeg(30354):   Metadata:
07-14 22:30:35.963: D/ffmpeg(30354):     major_brand     : mp42
07-14 22:30:35.963: D/ffmpeg(30354):     minor_version   : 0
07-14 22:30:35.963: D/ffmpeg(30354):     compatible_brands: isommp42
07-14 22:30:35.963: D/ffmpeg(30354):     creation_time   : 2015-07-15 05:30:32
07-14 22:30:35.963: D/ffmpeg(30354):   Duration: 00:00:02.75, start: 0.000000, bitrate: 9315 kb/s
07-14 22:30:35.963: D/ffmpeg(30354):     Stream #0:0(eng): Video: h264 (avc1 / 0x31637661), yuv420p, 960x720, 10062 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 180k tbc (default)
07-14 22:30:35.963: D/ffmpeg(30354):     Metadata:
07-14 22:30:35.963: D/ffmpeg(30354):       rotate          : 90
07-14 22:30:35.963: D/ffmpeg(30354):       creation_time   : 2015-07-15 05:30:32
07-14 22:30:35.963: D/ffmpeg(30354):       handler_name    : VideoHandle
07-14 22:30:35.963: D/ffmpeg(30354):     Side data:
07-14 22:30:35.963: D/ffmpeg(30354):       displaymatrix: rotation of -90.00 degrees
07-14 22:30:35.963: D/ffmpeg(30354):     Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 151 kb/s (default)
07-14 22:30:35.963: D/ffmpeg(30354):     Metadata:
07-14 22:30:35.963: D/ffmpeg(30354):       creation_time   : 2015-07-15 05:30:32
07-14 22:30:35.963: D/ffmpeg(30354):       handler_name    : SoundHandle
07-14 22:30:35.963: D/ffmpeg(30354): [libx264 @ 0xb6808800] using SAR=4/3
07-14 22:30:35.963: D/ffmpeg(30354): [libx264 @ 0xb6808800] using cpu capabilities: none!
07-14 22:30:35.963: D/ffmpeg(30354): [libx264 @ 0xb6808800] profile Constrained Baseline, level 3.1
07-14 22:30:35.963: D/ffmpeg(30354): [adts @ 0xb685b000] Using AVStream.codec.time_base as a timebase hint to the muxer is deprecated. Set AVStream.time_base instead.
07-14 22:30:35.963: D/ffmpeg(30354): Output #0, mpegts, to '/data/data/com.myapp.app/cache:temp/p1t3bhs0oa3lpqa67g5i9ninm9.ts':
07-14 22:30:35.963: D/ffmpeg(30354):   Metadata:
07-14 22:30:35.963: D/ffmpeg(30354):     major_brand     : mp42
07-14 22:30:35.963: D/ffmpeg(30354):     minor_version   : 0
07-14 22:30:35.963: D/ffmpeg(30354):     compatible_brands: isommp42
07-14 22:30:35.963: D/ffmpeg(30354):     encoder         : Lavf56.4.101
07-14 22:30:35.963: D/ffmpeg(30354):     Stream #0:0(eng): Video: h264 (libx264), yuv420p, 720x960 [SAR 4:3 DAR 1:1], q=-1--1, 29.97 fps, 90k tbn, 29.97 tbc (default)
07-14 22:30:35.963: D/ffmpeg(30354):     Metadata:
07-14 22:30:35.963: D/ffmpeg(30354):       handler_name    : VideoHandle
07-14 22:30:35.963: D/ffmpeg(30354):       creation_time   : 2015-07-15 05:30:32
07-14 22:30:35.963: D/ffmpeg(30354):       rotate          : 0
07-14 22:30:35.963: D/ffmpeg(30354):       encoder         : Lavc56.1.100 libx264
07-14 22:30:35.963: D/ffmpeg(30354):     Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, 151 kb/s (default)
07-14 22:30:35.963: D/ffmpeg(30354):     Metadata:
07-14 22:30:35.963: D/ffmpeg(30354):       creation_time   : 2015-07-15 05:30:32
07-14 22:30:35.963: D/ffmpeg(30354):       handler_name    : SoundHandle
07-14 22:30:35.963: D/ffmpeg(30354): Stream mapping:
07-14 22:30:35.963: D/ffmpeg(30354):   Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
07-14 22:30:35.963: D/ffmpeg(30354):   Stream #0:1 -> #0:1 (copy)
07-14 22:30:35.963: D/ffmpeg(30354): Press [q] to stop, [?] for help
07-14 22:30:35.963: D/ffmpeg(30354): frame=   17 fps=0.0 q=27.0 size=       0kB time=00:00:00.36 bitrate=   0.0kbits/s    
07-14 22:30:35.963: D/ffmpeg(30354): frame=   33 fps= 32 q=27.0 size=     164kB time=00:00:01.15 bitrate=1163.1kbits/s    
07-14 22:30:35.963: D/ffmpeg(30354): frame=   46 fps= 30 q=29.0 size=     213kB time=00:00:01.33 b

您可以尝试这个(负责裁剪和缩小尺寸)...

ffmpeg -i input.file -s 480x480 -vf crop=480:480,setdar=1:1,setsar=1:1 output.mp4

-s将设置比例(视频画布区域)
crop=480:480将从中心裁剪..如果您需要特定用途:crop=480:480:pos-X:pos-Y
setdar将设置显示宽高比
setsar将设置样本纵横比

Results:(屏幕抓取 MP4 剧照MPC-家庭影院 https://mpc-hc.org/downloads/)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用于裁剪和转置视频的 FFMPEG 命令放大后质量较差 的相关文章

  • 在根项目“bin”中找不到任务“bintrayUpload”

    我遵循了将 AAR 文件发布到 JCenter 所需的每个步骤 然后使用 Maven Central 将其同步https github com danielemaddaluno gradle jcenter publish https gi
  • Ffmpeg 无法正确转换为 ogg [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我正在使用 ffmpeg 在我的网站上转换音频和视频 Ffmpeg 可以正确转换为其他格式 如 mp3 mp4 等 但无法正确转换为 ogg 虽然 f
  • 如何在android中显示对话框之外的图像?

    我试图在对话框片段的顶部显示配置文件图像 一半在图像之外 我在下面附加了示例对话框 就像那样 并尝试了旧 Stackoverflow 解决方案中的所有 FrameLayout 协作 但我无法存档此内容 请给我正确的解决方案 谢谢 Updat
  • 使用 Fragment 在工具栏中实现 SearchView

    当前情况 我的应用程序主页由导航抽屉组成 因此我将视图作为片段加载 我的工具栏中也有搜索图标 我在中实现了它menu xml 下一步我实施了SearchView通过以下问题的答案来获取搜索图标在工具栏中实现搜索 https stackove
  • 华为手机“受保护的应用程序”设置及处理方法

    我有一台搭载 Android 5 0 的华为 P8 用于测试应用程序 该应用程序需要在后台运行 因为它跟踪 BLE 区域 我发现华为内置了一个名为 受保护的应用程序 的 功能 可以从手机设置 电池管理器 gt 受保护的应用程序 访问该功能
  • ExpandableListview OnGroupClickListener 未触发

    我正在关注这个 以编程方式折叠 ExpandableListView 中的组 https stackoverflow com questions 4314777 programmatically collapse a group in ex
  • 如何禁用操作栏上“向上”按钮的翻转?

    背景 我做了一个 应用程序管理器 https play google com store apps details id com lb app manager 替代应用程序 我希望添加 RTL 从右到左 语言的翻译 因为我知道在某些 And
  • 透明 9patch 图像:显示出线条

    我得到了一个透明的 9 补丁图像 其中有 9 条补丁线显示槽 This is the output 显然我不希望水平线可见 这就是我创建 9patch 的方式 This is the final image that is used in
  • Android -room 持久库 - DAO 调用是异步的,因此如何获取回调?

    从我读到的Room 不允许您在主线程上发出数据库查询 因为可能会导致主线程延迟 所以想象一下我正在尝试更新 UI 主线程上的文本视图 其中一些数据我将如何得到回调 让我给你举个例子 想象一下 我想将我的业务模型数据存储到一个名为 事件 的对
  • 在新的 intel x86 android 模拟器中访问 google api

    我只是尝试在新的 x86 android 模拟器中运行我公司的应用程序 但是我们的应用程序依赖于 google 地图 API 而这在 google 随 android sdk 版本 17 提供的 x86 系统映像中不可用 我的直觉告诉我答案
  • Chromium 中的 MP4 编解码器支持

    我们已将 Chromium 嵌入式框架集成到我们的 Windows 游戏中 以允许我们从应用程序内渲染网页 并且一切正常 除了 MP4 视频 据我所知 由于许可问题 Chromium 不包含此编解码器 但任何人都可以提供有关我们如何添加支持
  • Android 中的 OpenGL 缩小

    我正在使用 3D 对象并渲染它并通过扩展 GLSurfaceView 实现渲染器来显示它 问题是如何通过捏合和捏合进行缩小 下面是我的班级 package com example objLoader import java nio Byte
  • Android SearchView 在启动时隐藏键盘

    我有一个小问题正在尝试解决 当我打开应用程序时 键盘会显示输入搜索视图的查询 不过 我只想在单击搜索视图时显示键盘 我该如何解决 Thanks 这对我有用 用于隐藏焦点的代码 searchView SearchView view findV
  • Android:GestureDetector 无法与选项卡(TabActivity、Tabwidget)一起工作(gestureDetector.onTouchEvent(event) 始终为 false)

    我已经用不同的子活动实现了 TabActivity intent new Intent setClass this MyChildTabActiviy class Initialize a TabSpec for each tab and
  • onTaskRemoved() 在华为和小米设备中没有被调用

    我一直在使用onTaskRemoved 服务中的方法 用于检测应用程序何时通过滑动从设备最近列表中删除 我执行一些日志记录和发生这种情况时需要执行的一些其他操作 它工作完美 然后我在运行Android 6 0的华为设备上检查了这个方法 该方
  • 受信任的网络活动 - 地址栏不隐藏(Android 72 的 Chrome)

    我已经关注了this https developers google com web updates 2017 10 using twa了解如何使用受信任的 Web 活动的指南 一切正常 但地址栏仍然出现 一开始我认为这是因为当应用程序正在
  • 离子初始加载时间

    我正在使用 Ionic 构建一个简单的应用程序 但我的应用程序在冷启动时的初始加载时间方面存在性能问题 这是我所做的 collection repeat 代替带有 track by 的 ng repeat 原生滚动 overflow scr
  • 禁用 Android 菜单组

    我尝试使用以下代码禁用菜单组 但它不起作用 菜单项仍然启用 你能告诉我出了什么问题吗 资源 菜单 menu xml menu menu
  • 丢失应用程序的密钥库文件(但已启用 Google Play 应用程序签名)

    我已经失去了原来的keystore用于签署我的应用程序的文件 我的应用启用了 Google Play 应用签名 如果我联系 Google 支持人员 是否可以重置密钥 以便我可以继续上传到此包 我希望我可以做到这一点 因为应用程序签名已启用
  • 将对象从手机共享到 Android Wear

    我创建了一个应用程序 在此应用程序中 您拥有包含 2 个字符串 姓名和年龄 和一个位图 头像 的对象 所有内容都保存到 sqlite 数据库中 现在我希望可以在我的智能手表上访问这些对象 所以我想实现的是你可以去启动 启动应用程序并向左和向

随机推荐

  • 如何通过 gitlab-rails 更改电子邮件地址(避免电子邮件重新确认)

    当我等待将合并请求引入 Gitlab 以避免此问题时 我需要一种解决方法来通过 gitlab rails 控制台编辑用户的电子邮件地址 使用这个 user User find by name test user email email pr
  • 我如何公开我的IP,外部可以访问我的本地主机

    我只是想让我的IP公开 这样就可以从任何地方访问它 我正在使用ubuntu 18 04 已经安装了apache2和PHP 索引文件位于 var www html example com public html index php 在本地主机
  • 从本地存储保存和检索日期

    这似乎是一个愚蠢的问题 但我在理解 Typescript 方面遇到了相当困难 我有以下代码 var date new Date window localStorage setItem date date 如您所见 我正在生成今天的日期并通过
  • 重新采样 H264 视频以降低帧速率,同时保持高图像质量

    以下是感兴趣的视频的 mplayer 输出 br carina tmp mplayer foo mov mplayer Symbol ff codec bmp tags has different size in shared object
  • 数据表 JSF 中的延迟加载

    在我负责的许多项目中 没有什么比数据表中的延迟分页更好的了 JSF 是否有某种魔力 或者我说得对吗 它确实是一个很大的性能问题 如果你看过一些教程 几乎没有人关心惰性分页 假设您在支持 bean 上有 List 并且数据库中有 2000 行
  • 带有泛型类声明的命名空间约束

    我想知道是否 如果可以的话如何 可以将命名空间定义为泛型类声明中的约束参数 我所拥有的是这样的 namespaceMyProject Models Entities namespaceMyProject Tests BaseTest 现在我
  • Watir 脚本偶尔返回 Net::ReadTimeout 错误

    我有一个 Watir 脚本 偶尔会意外地返回此错误 Net ReadTimeout 我搜索了这个错误并发现这个问题 https stackoverflow com questions 47452276 watir get sometimes
  • 非 Activity 类中的 findViewById

    对此我仍然相对较新 在我在活动类 MainActivity 中使用的非活动类 MyLocation 中查找视图时遇到问题 我正在使用 MyLocation 来获取经度和纬度 我想在使用 GPS 或网络时突出显示文本视图 为此 我需要在非活动
  • Pytesseract,尝试检测屏幕上的文本

    我将 MSS 与 pytesseract 结合使用 尝试在屏幕上读取以确定正在监视的区域中的字符串 我的代码如下 import Image import pytesseract import cv2 import os import mss
  • C# 泛型重载 - 编译器无法确定正确的调用

    我不明白为什么编译器无法解析此处使用的正确重载 代码如下 只有一个版本的 Add 是合适的 BigFoo 是一个 IFoo 并且不实现 IEnumerable 其中 T 是一个 IFoo 但它坚持报告含糊之处 有任何想法吗 我尝试添加第二个
  • Delphi DataSnap REST 服务器从 TStream 返回 JSON 数组,而不是二进制

    我有一个与 Android 客户端通信的 REST 服务器 我将它从 XE3 ish 升级到 Berlin 其中一个服务器方法返回一个包含 jpeg 的 TStream 并且工作得很好 很高兴将图像作为二进制图像返回 升级到 Berlin
  • 如何向 WordPress.com 上托管的 WordPress 博客添加语法突出显示?

    我希望为我的 WordPress 博客提供一个好的语法荧光笔 我有哪些选择 我经常看到它具有颜色鲜艳的语法突出显示和复制到剪贴板的选项 有谁知道这是什么工具吗 在 wordpress com 上 您无法安装插件 因此您必须使用 Wordpr
  • 如何在Python中完美地将单元素列表转换为元组? [复制]

    这个问题在这里已经有答案了 所以我正在尝试这样做 tuple 1 我期望的输出是 1 但是 我得到了这个 1 但如果我这样做 tuple 1 2 它工作完美 像这样 1 2 这太奇怪了 我不知道为什么元组函数会导致这个结果 请帮我解决它 这
  • 从 DoubleLinkedList 中删除重复项

    我正在尝试删除 C 中的重复项 我已经设法使用对象默认构造函数将对象设置为 null 但我无法将其从列表中完全删除 此代码还删除了两个对象 而不仅仅是一个 这是另一个问题的转帖 我的代码和部分帖子已更改 如何按全名从双向链表中删除重复项 h
  • MongoDB 查询返回空数组

    有一个基本的 Express 应用程序连接到几乎 0 5 GB 的 MongoDB 数据库 当我运行时 router get function req res next medical data find State CT function
  • 从 google Drive 自行下载 xlsx 文件

    所以 我正在尝试制作一个小脚本 它将使用谷歌驱动器API下载一个Excel文件 通过遵循谷歌API教程 我遇到了两个错误 无法读取未定义的 on 属性 和 请求的转换是不支持 这是代码 const fs require fs const r
  • 如何手动推断表达式的类型

    给定 Haskell 函数 head filter fst 现在的问题是如何手动 手动 找到类型 如果我让 Haskell 告诉我我得到的类型 head filter fst Bool b gt Bool b 但我想了解仅使用所用函数的签名
  • 无法在 SBT 中运行 Apache Spark 相关单元测试 - NoClassDefFoundError

    我有一个简单的单元测试 使用SparkContext 我可以在 IntelliJ Idea 中运行单元测试 没有任何问题 但是 当尝试从 SBT shell 运行相同的测试时 我收到以下错误 java lang NoClassDefFoun
  • 跟踪 C++ 中递归函数被调用的次数

    我正在尝试编写一个程序 该程序具有一个参数是字符串向量的函数 我想在该函数上使用递归 但每次调用该函数时 我想更改参数 例如 fun stringArray i 其中 i 是调用该函数的次数 因此 以更简单的方式 如下所示 但我需要跟踪函数
  • 用于裁剪和转置视频的 FFMPEG 命令放大后质量较差

    我正在尝试将尺寸通常为 960x720 的 mp4 视频转换为方形 480 480 视频 但它通常看起来被压扁 命令是 y i s vf crop 480 480 transpose d threads 5 metadata s v rot