我刚刚发现 FFmpeg,我需要它来将大量 MP4 文件剪切到每个文件的最后 20 秒。每个 MP4 文件都有一个视频轨道和两个音频轨道。
我一直在使用这行代码:
for %F in (*.mp4) do ffmpeg -sseof -20 -i "%F" -map 0:v -map 0:a -c:v copy -c:a copy "%~nF_trimmed.mp4"
Run Code Online (Sandbox Code Playgroud)
修剪顺利,但音频存在问题。在没有取消修剪过程的情况下出现此错误:
[mp4 @ 0000025740443740] track 1: codec frame size is not set
[mp4 @ 0000025740443740] track 2: codec frame size is not set
Run Code Online (Sandbox Code Playgroud)
请记住,我不熟悉编码,我只需要它来进行视频编辑目的。我一直在尝试寻找解决方法,但我没有运气。有任何想法吗?
如果有用的话,这是控制台完整流程:
D:\User Libraries\Desktop\Test>for %F in (*.mp4) do ffmpeg -sseof -20 -i "%F" -map 0:v -map 0:a -c:v copy -c:a copy "%~nF_trimmed.mp4"
D:\User Libraries\Desktop\Test>ffmpeg -sseof -20 -i "Test1.mp4" -map …Run Code Online (Sandbox Code Playgroud) 我刚刚发现 FFMPEG,我需要它来将 MP4 文件的负载剪切到每个文件的最后 20 秒。每个 MP4 文件都有一个视频轨道和两个音频轨道,并且还具有可变帧速率。
我一直在使用这行代码:
for %F in (*.mp4) do ffmpeg -sseof -20 -i "%F" -map 0:v -map 0:a -c:v copy -c:a copy "%~nF_trimmed.mp4"
Run Code Online (Sandbox Code Playgroud)
修剪顺利,但音频存在问题。在没有取消修剪过程的情况下出现此错误,尽管我相信它与我的问题无关:
[mp4 @ 0000025740443740] track 1: codec frame size is not set
[mp4 @ 0000025740443740] track 2: codec frame size is not set
Run Code Online (Sandbox Code Playgroud)
当我将修剪后的文件放入视频编辑软件时,可以看到:

第二音轨比视频轨道长。
-shortest命令并没有达到目的。也许我只是用错了?
ffmpeg ×2