ffmpeg准确地将视频的一部分复制到毫秒

时间:2016-08-25 05:06:05

标签: ffmpeg

我正在使用ffmpeg复制视频的一部分。

我正在使用mpv来观看视频。我从中得到了开始时间和结束时间。

ffmpeg -i" main.flv" -ss 01:54:34.340 -to 02:01:13.073 -c copy copied.mp4

我面临的问题是视频无法从01:54:34.340开始,它从01:54开始:34.608

所以它改变了开始的问题。

有什么方法可以从精确的毫秒位置开始或形成特定的帧。

或是否有提及开始帧编号和结束帧编号的命令。对于那个mpv也应该告诉我OSD中的帧数

上述命令的输出是

Input #0, flv, from 'main.flv':
  Metadata:
    author          : 
    copyright       : 
    description     : 
    keywords        : 
    rating          : 
    title           : 
    presetname      : Custom
    creationdate    : Thu Aug 25 04:50:55 2016
                    : 
    videodevice     : VidBlaster
    avclevel        : 31
    avcprofile      : 77
    videokeyframe_frequency: 5
    audiodevice     : Realtek HD Audio Input
    audiochannels   : 2
    audioinputvolume: 100
  Duration: 03:55:58.86, start: 0.033000, bitrate: 855 kb/s
    Stream #0:0: Video: h264 (Main), yuv420p(tv), 640x480 [SAR 1:1 DAR 4:3], 819 kb/s, 30.30 fps, 29.97 tbr, 1k tbn, 59.94 tbc
    Stream #0:1: Audio: aac (LC), 22050 Hz, stereo, fltp, 49 kb/s
Output #0, mp4, to 'copied.mp4':
  Metadata:
    author          : 
    copyright       : 
    description     : 
    keywords        : 
    rating          : 
    title           : 
    presetname      : Custom
    creationdate    : Thu Aug 25 04:50:55 2016
                    : 
    videodevice     : VidBlaster
    avclevel        : 31
    avcprofile      : 77
    videokeyframe_frequency: 5
    audiodevice     : Realtek HD Audio Input
    audiochannels   : 2
    audioinputvolume: 100
    encoder         : Lavf57.25.100
    Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 640x480 [SAR 1:1 DAR 4:3], q=2-31, 819 kb/s, 30.30 fps, 29.97 tbr, 16k tbn, 1k tbc
    Stream #0:1: Audio: aac (LC) ([64][0][0][0] / 0x0040), 22050 Hz, stereo, 49 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame=    0 fps=0.0 q=-1.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=  frame=    0 fps=0.0 q=-1.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=  frame=11906 fps=8002 q=-1.0 Lsize=   41574kB time=00:06:38.75 bitrate= 854.1kbits/s speed= 268x    
video:38866kB audio:2336kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.904480%

1 个答案:

答案 0 :(得分:1)

在输入后指定-ss时,它会在指定时间后寻找第一个关键帧。因此,请指定较早的时间,或在输入前放置-ss。在任何情况下,如果开始时间不是关键帧,则剪切文件将不会从那里开始。