从具有低fps的视频中提取剪辑

时间:2016-05-31 21:56:35

标签: video ffmpeg

我想通过指定开始和结束时间从视频中提取剪辑(从[1]下载)(帧速率较低)。为此,我使用以下命令:

ffmpeg -i example.webm -ss 116.38 -to 126.38 clip.mpg

然而,我收到以下错误:

ffmpeg version N-80026-g936751b Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.3)
configuration: --extra-libs=-ldl --prefix=/opt/ffmpeg --mandir=/usr/share/man --enable-avresample --disable-debug --enable-nonfree --enable-gpl --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --disable-decoder=amrnb --disable-decoder=amrwb --enable-libpulse --enable-libfreetype --enable-gnutls --enable-libx264 --enable-libx265 --enable-libfdk-aac --enable-libvorbis --enable-libmp3lame --enable-libopus --enable-libvpx --enable-libspeex --enable-libass --enable-avisynth --enable-libsoxr --enable-libxvid --enable-libvidstab
libavutil 55. 24.100 / 55. 24.100
libavcodec 57. 42.100 / 57. 42.100
libavformat 57. 36.100 / 57. 36.100
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 45.100 / 6. 45.100
libavresample 3. 0. 0 / 3. 0. 0
libswscale 4. 1.100 / 4. 1.100
libswresample 2. 0.101 / 2. 0.101
libpostproc 54. 0.100 / 54. 0.100
Input #0, matroska,webm, from 'example.webm':
Metadata:
encoder : Google
Duration: 00:04:22.29, start: 0.000000, bitrate: 207 kb/s
Stream #0:0: Video: vp8, yuv420p, 630x360, SAR 1:1 DAR 7:4, 6 fps, 6 tbr, 1k tbn (default)
Stream #0:1: Audio: vorbis, 44100 Hz, stereo, fltp (default)
[mpeg1video @ 0x252f200] MPEG1/2 does not support 5/1 fps
Output #0, mpeg, to 'clip.mpg':
Metadata:
encoder : Google
Stream #0:0: Unknown: none, SAR 1:1 DAR 0:0 (default)
Metadata:
encoder : Lavc57.42.100 mpeg1video
Stream #0:1: Unknown: none (default)
Metadata:
encoder : Lavc57.42.100 mp2
Stream mapping:
Stream #0:0 -> #0:0 (vp8 (native) -> mpeg1video (native))
Stream #0:1 -> #0:1 (vorbis (native) -> mp2 (native))
Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
-----------------------------------------------------

我尝试在上面的命令中添加-r 20。它适用于这种情况,但不确定这是否正确。 我想知道如何在给定开始时间和结束时间的情况下从该视频中提取剪辑?我应该使用什么参数?或者做正确的方法是什么?

感谢。

[1] https://www.youtube.com/watch?v=Yc52pGHr0xc

1 个答案:

答案 0 :(得分:1)

您可以将其提取到WebM或MP4

的WebM:

ffmpeg -i example.webm -ss 116.38 -to 126.38 -c copy clip.webm

MP4:

ffmpeg -i example.webm -ss 116.38 -to 126.38 clip.mp4

正如错误消息所示,您的命令将视频转换为MPEG-1(一个30岁的编解码器),它不支持5 fps,即源的帧速率。