首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >修剪mp4文件而不对其再次编码

修剪mp4文件而不对其再次编码
EN

Stack Overflow用户
提问于 2016-02-01 17:18:51
回答 2查看 1.7K关注 0票数 6

我有一个.mp4视频文件,我需要修剪它,但无论我如何做,修剪后的视频再次被编码,这导致噪音视频。

我试过的是:

  1. 用Matlab打开视频,读取帧,只写我想要在修剪视频中的帧,我使用'MPEG-4'选项。
  2. 使用修剪视频。
  3. 使用VirtualDub修剪视频。

在前两个场景中,原始的mp4电影在裁剪后再次被编码。我无法在mp4中打开VirtualDub文件。

那么,什么是最简单的方法来修剪一个视频,而不重新加密呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-02 14:48:44

您可以在一个命令中执行拆分和重新编码。

创建文本文件,list.txt

像这样

代码语言:javascript
复制
file 'in.mp4'
inpoint 48.101
outpoint 67.459
file 'in.mp4'
inpoint 76.178
outpoint 86.399
file 'in.mp4'
inpoint 112.140
outpoint 125.031

那就跑,

代码语言:javascript
复制
ffmpeg -f concat -i list.txt -an -crf 18 out_merged.mp4
票数 3
EN

Stack Overflow用户

发布于 2016-02-02 14:21:33

我用以下命令解决了这个问题:

代码语言:javascript
复制
ffmpeg.exe -ss 48.101  -t 19.358 -i in.mp4 -an out_part1.mp4
ffmpeg.exe -ss 76.178  -t 10.221 -i in.mp4 -an out_part2.mp4
ffmpeg.exe -ss 112.140 -t 12.891 -i in.mp4 -an out_part3.mp4

ffmpeg -i out_part1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intrmdt1.ts
ffmpeg -i out_part2.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intrmdt2.ts
ffmpeg -i out_part3.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intrmdt3.ts

ffmpeg -i "concat:intrmdt1.ts|intrmdt2.ts|intrmdt3.ts" -c copy out_merged.mp4

还有一些解释:

  1. -ss (start time)选项之前给出-i (input)-t (duration)选项可以避免不必要的解码。
  2. 不使用-c copy提供转码,因此结果更精确(这是从这里获得的)。
  3. 我使用-an是因为我不需要音频,如果您需要音频,可以忽略这个选项。
  4. 在连接得到的经过修剪的视频之前,我需要将它们转换为mpeg传输流,以实现无损级联(有关更多细节,您可以看到此链接)。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35136468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档