Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ffmpeg在指定的开始位置剪切视频_Ffmpeg - Fatal编程技术网

ffmpeg在指定的开始位置剪切视频

ffmpeg在指定的开始位置剪切视频,ffmpeg,Ffmpeg,我正在尝试使用ffmpeg来剪切avi文件的一部分。 我知道以前也有人问过类似的问题,但我浏览了大量其他帖子,看不出哪里出了问题 我用来测试7秒视频的命令行参数是: -ss 00:00:01-t 00:00:01-i“C:\recordings\2013-09-11\Camera 1\Camera 1\u 2013-09-11\u 22-23-43.avi”-vcodec副本-acodec副本“i:\clip2.avi” 输出为: ffmpeg版本N-56254-gb7bd688版权所有(c)2

我正在尝试使用ffmpeg来剪切avi文件的一部分。 我知道以前也有人问过类似的问题,但我浏览了大量其他帖子,看不出哪里出了问题

我用来测试7秒视频的命令行参数是:

-ss 00:00:01-t 00:00:01-i“C:\recordings\2013-09-11\Camera 1\Camera 1\u 2013-09-11\u 22-23-43.avi”-vcodec副本-acodec副本“i:\clip2.avi”

输出为:

ffmpeg版本N-56254-gb7bd688版权所有(c)2000-2013 ffmpeg开发人员于2013年9月12日21:00:14使用gcc 4.7.3(gcc)配置构建: --启用gpl--enable-version3--disable-w32threads--enable avisynth--enable bzlib--enable fontconfig--enable-frei0r--enable gnutls--enable iconv--enable libass--enable libbluray--enable libcaca--enable libfreetype--enable libilbc--enable libmodplug--enable libmp3lame--enable libopencore amrnb--启用libopencore-amrwb--enable libopenjpeg--enable libopus--enable librtmp--enable libschroedinger--enable libsoxr--enable libspeex--enable libthera--enable libtwolame--enable libvidstab--enable libvo aacenc--enable libvorbis--enable libvpx--enable-libx264--enable libxavs--enable libxvidd--启用zlib
libavutil 52。43.100 / 52. 43.100 libavcodec55。31.101 / 55. 31.101 libav55格式。16.102 / 55. 16.102 libav55设备。3.100 / 55. 3.100 libavfilter 3。84.100 / 3. 84.100 libswscale 2。5.100 / 2. 5.100 libswresample 0。17.103 / 0. 17.103 libroc 52。3.100 / 52. 3.100

我最后得到了一个3秒长的剪辑!!!?? 在输出中,我可以看到-ss标志被完全忽略

有人能看出我哪里做错了吗

谢谢这里的一些提示:

请参阅“快速搜索”与“精确搜索”。要准确查找,请执行以下操作:

  • -ss必须在-i
我怀疑您的输入帧落在任何关键帧之外,因此“快速搜索”(-ss before-I)失败

另外,
-t
通常将若干帧作为其输入,我不确定它是否接受时间码。考虑使用<代码> -t 1 < /C> >或<代码> -00:00:0/02/<代码>(注释:-to,不-t)。 编辑:关于
-t
-vframe
的对比,slhck是正确的,请参见注释

-i表示持续时间。 例如,如果你想要5秒钟的视频,应该写

-ss 00:00:01-t 00:00:05-i“C:\recordings\2013-09-11\Camera 1\Camera 1\u 2013-09-11\u 22-23-43.avi”-vcodec副本-acodec副本“i:\clip2.avi”

-ss是写入时的偏移量-ss 00:00:01留给您6秒
写入时-t 00:00:01这是用1秒而不是3秒制作视频。

只是不要使用codec copy命令。删除“-vcodec copy-acodec copy”并重试,您将获得准确的复制时间

我认为您关于关键帧的看法是正确的。我需要能够像virtualdub一样在任何时候切碎视频,这样我的ffmpeg就不适合我了。感谢您的帮助。“-t通常会将许多帧作为输入”-这是不正确的。事实上,它接受秒或
HH:MM:SS.ms
timecode。可以使用
-frames:v
(或别名
-vframes
)设置视频帧数。看:那么。。。你试过我的解决方案吗?
Guessed Channel Layout for  Input Stream #0.1 : mono

Input #0, avi, from 'C:\recordings\2013-09-11\Camera 1\Camera 1_2013-09-11_22-23-43.avi':
  Duration: 00:00:07.03, start: 0.000000, bitrate: 787 kb/s
    Stream #0:0: Video: msmpeg4v3 (DIV3 / 0x33564944), yuv420p, 800x448, 30 fps, 30 tbr, 30 tbn, 30 tbc
    Stream #0:1: Audio: adpcm_ms ([2][0][0][0] / 0x0002), 44100 Hz, mono, s16, 176 kb/s
Output #0, avi, to 'I:\clip2.avi':
  Metadata:
    ISFT            : Lavf55.16.102
    Stream #0:0: Video: msmpeg4v3 (DIV3 / 0x33564944), yuv420p, 800x448, q=2-31, 30 fps, 30 tbn, 30 tbc
    Stream #0:1: Audio: adpcm_ms ([2][0][0][0] / 0x0002), 44100 Hz, mono, 176 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame=   88 fps=0.0 q=-1.0 Lsize=     226kB time=00:00:02.03 bitrate= 908.7kbits/s    

video:146kB audio:66kB subtitle:0 global headers:0kB muxing overhead 6.345259%