如何使用 ffmpeg 从 .mp4 文件中删除几秒钟?我有 test.mp4 文件,我想从 11:00 到 11:10 删除 10s
llo*_*gan 12
这避免了重新编码,但您只能剪切关键帧,因此它可能无法选择您想要的持续时间。
创建细分:
ffmpeg -t 00:11:00 -i input.mp4 -map 0 -c copy segment1.mp4
ffmpeg -ss 00:11:10 -i input.mp4 -map 0 -c copy segment2.mp4
Run Code Online (Sandbox Code Playgroud)创建input.txt:
file 'segment1.mp4'
file 'segment2.mp4'
Run Code Online (Sandbox Code Playgroud)与concat demuxer连接:
ffmpeg -f concat -i input.txt -map 0 -c copy output.mp4
Run Code Online (Sandbox Code Playgroud)您可以尝试在不重新编码的情况下执行此操作,但由于您只能在关键帧上进行剪切,因此可能无法与所需的剪切时间保持一致,因此如果您需要准确性,则需要重新编码:
ffmpeg -i input.mp4 -filter_complex \
"[0:v]trim=end=660,setpts=N/FRAME_RATE/TB[v0]; \
[0:a]atrim=end=660,asetpts=N/SR/TB[a0]; \
[0:v]trim=start=670,setpts=N/FRAME_RATE/TB[v1]; \
[0:a]atrim=start=670,asetpts=N/SR/TB[a1]; \
[v0][a0][v1][a1]concat=n=2:v=1:a=1[v][a]" \
-map "[v]" -map "[a]" output.mp4
Run Code Online (Sandbox Code Playgroud)
有关每个过滤器的详细信息,请参阅FFmpeg 过滤器文档。
小智 5
我认为您必须将视频分成 2 部分,然后将它们合并在一起。第一个“时间值”是起点,第二个“时间值”是您要剪切的视频长度。例如在下面,第一次剪辑从 00:00:00 开始,长度为 11 分钟,第二次剪辑从 11 分 10 秒开始,长度为 10 分钟。
切割:
ffmpeg -i test.mp4 -ss 00:00:00 -t 00:11:00 -acodec copy -vcodec copy test1.mp4
ffmpeg -i test.mp4 -ss 00:11:10 -t 00:10:00 -acodec copy -vcodec copy test2.mp4
合并:
cat test1.mp4 test2.mp4 >> test3.mp4
我没试过,如果有效请告诉我。
| 归档时间: |
|
| 查看次数: |
14953 次 |
| 最近记录: |