【发布时间】:2019-07-02 05:03:07
【问题描述】:
我正在尝试剪切我得到的视频的最后 8 秒;问题是 ffmpeg 正在选择最后 10 秒,我真的不知道为什么。我检查了,“0:00:00”和视频的有效开始之间没有偏移,那为什么要花更多的时间呢?
这是我的代码:
ffmpeg.exe -ss 00:01:02 -i "F:\temp\input.mp4" -c copy -t 00:00:08 "D:\temp\1_output.mp4"
这是输出:
ffmpeg 版本 N-90893-gcae6f806a6 版权所有 (c) 2000-2018 FFmpeg
使用 gcc 7.3.0 (GCC) 配置构建的开发人员:--enable-gpl
--enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype -- enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable -libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable -gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf - -enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth libavutil 56. 17.100 / 56. 17.100 libavcodec 58. 19.100 / 58. 19.100 libavformat 58. 13.100 / 58. 13.100 libavdevice 58. 4.100 /
- 4.100 libavfilter 7. 21.100 / 7. 21.100 libswscale 5. 2.100 / 5. 2.100 libswresample 3. 2.100 / 3. 2.100 libpostproc 55. 2.100 / 55. 2.100 Input #0,
mov,mp4,m4a,3gp,3g2,mj2,来自 'F:\temp\input.mp4':元数据:
主要品牌:异构体
次要版本:512
compatible_brands:isomiso2avc1mp41
编码器:Lavf58.13.100 持续时间:00:01:10.34,开始:0.000000,比特率:14542 kb/s
流 #0:0(und):视频:h264(高)(avc1 / 0x31637661)、yuv420p、576x1024、14346 kb/s、25 fps、25 tbr、12800 tbn、50 tbc(默认)
元数据:
handler_name : VideoHandler
流 #0:1(und):音频:aac (LC) (mp4a / 0x6134706D),48000 Hz,立体声,fltp,193 kb/s(默认)
元数据:
handler_name : SoundHandler Output #0, mp4, to 'D:\temp\1_output.mp4': Metadata:
主要品牌:异构体
次要版本:512
compatible_brands:isomiso2avc1mp41
编码器:Lavf58.13.100
流 #0:0(und):视频:h264(高)(avc1 / 0x31637661)、yuv420p、576x1024、q=2-31、14346 kb/s、25 fps、25 tbr、12800 tbn、12800 tbc
(默认)
元数据:
handler_name : VideoHandler Stream #0:1(und):音频:aac (LC) (mp4a / 0x6134706D),48000 Hz,立体声,fltp,193 kb/s(默认)
元数据:
handler_name : SoundHandler Stream #0:0 -> #0:0 (copy) Stream #0:1 -> #0:1 (copy) 按 [q] 停止,[?] 获取帮助 frame= 252
fps=0.0 q=-1.0 Lsize= 3089kB 时间=00:00:07.99 比特率=3164.7kbits/s
速度=1e+003x 视频:2841kB 音频:240kB 字幕:0kB 其他
流:0kB 全局标头:0kB 复用开销:0.283155%
我真的不明白我做错了什么
谢谢
【问题讨论】:
-
-ss 寻找最近的关键帧,以获得精确的剪辑,您需要使用
trim过滤器,并且需要重新编码视频(即您不能使用 -c 复制) -
不需要修剪。升级ffmpeg并使用
ffmpeg.exe -sseof -8 -i F:\temp\input.mp4 D:\temp\1_output.mp4 -
谢谢两位!我会尽力!只有一个问题@Gyan:如果我需要在文件中间选择 8 秒,我会遇到同样的问题还是只是“文件结束”?
标签: ffmpeg