ffmpeg - FFMPEG 在拆分 avi 文件后提高比特率
问题描述
我正在尝试拆分持续时间为 1 小时到 8 分钟的视频 (.avi) 文件。我正在使用以下命令
ffmpeg -i videos_22_05_18/cnbc.avi -ss 00:00:00 -to 00:08:00 -c copy 1.avi
但它制作了一个 37 分钟的视频,而且音频质量也太快了。
我比较了原始 .avi 文件和生成的文件的规格,唯一的区别是比特率。
原始文件的比特率为646k,分割文件的比特率为1126。
我真的尝试了每一件事。喜欢使用
ffmpeg -i videos_22_05_18/cnbc.avi -ss 00:00:00 -to 00:08:00 -c copy -b 646k 1.avi
和
ffmpeg -i videos_22_05_18/cnbc.avi -ss 00:00:00 -to 00:08:00 -c copy -async 1 1.avi
和
ffmpeg -i videos_22_05_18/cnbc.avi -ss 00:00:00 -to 00:08:00 -c copy -b 646k -async 1 1.avi
和
ffmpeg -i videos_22_05_18/cnbc.avi -ss 00:00:00 -to 00:08:00 -vcodec copy -acodec copy -b 646k 1.avi
以及更多组合
似乎没有任何效果我不知道为什么会这样。请帮忙。
解决方案
通过 ffmpeg 分割视频文件:
ffmpeg分割视频文件有两种方式。第一个本身很好,不仅如此 - 它更快,但有时会创建具有某些缺陷的输出文件。因此,对于这些情况,还有第二种分割视频文件的方法:速度慢得多,输出文件更大,但似乎它们总是与使用的输入文件具有相同的质量水平。
方式:1
ffmpeg -ss <start> -t <duration> -i in1.avi -vcodec copy -acodec copy out1.avi
方式:2
ffmpeg -ss <start> -t <duration> -i in1.avi -sameq out1.avi
推荐阅读
- node.js - 无法从编辑配置文件页面更新 MongoDB
- python - 基于列值的高效逐行操作(聚合)
- c - 在不传递偏移量的情况下迭代行
- haskell - 使用 sortByFst 时出错:变量不在范围内
- javascript - 我第一次在页面上导航时不会调用头部中的特定页面脚本。代码组织质疑
- terraform - 每个环境需要有单独的通知通道
- javascript - 如何显示正在加载的内容如下:正在加载。加载..加载
- java - 使用 Android Studio 3.5 在 Kotlin 中的资源文件和 const val 之间哪种方式更好?
- vba - VBA Word - 反向遍历文档中的所有段落
- glib - GLib线程中的g_ptr_array_add()是否安全?