我一直ffmpeg按照这些说明来加快视频使用速度。例如,要将视频速度加快 4 倍,我运行以下命令:
ffmpeg -i vid.MP4 -filter:v "setpts=0.25*PTS" vid_fast.MP4
Run Code Online (Sandbox Code Playgroud)
虽然视频按指示的速度加速,但视频的持续时间(如其属性下所示,以及当我在 VLC 中播放视频时)仍与原始时间相同。例如,如果vid.MP4最初为 4 分钟,则vid_fast.MP4也是 4 分钟,而不是预期的 1 分钟长。(额外的 3 分钟仅包括视频冻结在最后一帧的时间。)
这有点麻烦,因为我需要删除我不感兴趣的额外 3 分钟。有什么办法可以避免这种情况吗?
以下是有关我正在使用的版本的更多信息ffmpeg:
ffmpeg version N-69060-gcd960c8 Copyright (c) 2000-2015 the FFmpeg developers
built on Jan 14 2015 22:13:45 with gcc 4.9.2 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
le-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --
enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-lib
modplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrw
b --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinge
r --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --en
able-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis
--enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-
libx265 --enable-libxavs --enable-libxvid --enable-lzma --enable-decklink --enab
le-zlib
libavutil 54. 16.100 / 54. 16.100
libavcodec 56. 20.100 / 56. 20.100
libavformat 56. 18.101 / 56. 18.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 7.101 / 5. 7.101
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
Hyper fast Audio and Video encoder
Run Code Online (Sandbox Code Playgroud)
加速视频后,只需将输出视频(在您的情况下为 vid_fast.mp4)修剪到持续时间。使用以下命令
ffmpeg -i vid_fast.MP4 -vcodec copy -t 60 out_fast.mp4
Run Code Online (Sandbox Code Playgroud)
它将创建 1 分钟的输出视频。
今天遇到了同样的问题...让输出视频正确持续的技巧是使用以下命令删除音频-an:
ffmpeg -i vid.MP4 -filter:v "setpts=0.25*PTS" -an vid_fast.MP4
Run Code Online (Sandbox Code Playgroud)
对于某些视频来说这还不够,因此还可以-r <framerate>通过指定与原始视频相同的 FPS来添加参数。因此,如果vid.mp4 的帧率为 30 fps,则编码为:
ffmpeg -i vid.MP4 -filter:v "setpts=0.25*PTS" -r 30 -an vid_fast.MP4
Run Code Online (Sandbox Code Playgroud)
请注意,您还可以使用替代符号来加快视频速度,无需使用小数点,如下所示 ( PTS/4= 4x):
ffmpeg -i vid.MP4 -filter:v "setpts=PTS/4" -r 30 -an vid_fast.MP4
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1626 次 |
| 最近记录: |