剪切 AV 文件 (MP4)

剪切 AV 文件 (MP4)

我尝试过使用 openshot、pitivi、kdenlive、videolan 来剪切音频/视频文件,但它们似乎都冻结了。所以我现在尝试使用以下命令:

avconv -i input.MP4 -vcodec copy -acodec copy -ss 01:25:00 -t 01:26:00 output.MP4

这会在我的计算机上创建一个文件,但是当我在 vlc 中打开它时,我只能听到声音,长度为 37.04 分钟。本来应该是1分钟长。

另外,刚刚尝试过这个:

ffmpeg -ss 01:24:30 -t 01:25:00 -i orginalfile -vcodec copy -acodec copy newfile

这根本不会剪切 av 文件,它最终是完整长度的,但只有音频可用,没有视频。

我究竟做错了什么?

我也尝试过:

avconv -i input.MP4 -ss 01:25:00 -t 01:26:00 -c:a copy -c:v copy output.MP4

它给了我与上面相同的结果。


两个命令的完整输出可以在此处查看:

oshiro@home-desktop:~/Desktop$ avconv -i SDV_1195.MP4 -vcodec copy -acodec copy -ss 01:24:00 -t 01:25:30 2.MP4
avconv version 0.8.13-4:0.8.13-0ubuntu0.12.04.1, Copyright (c) 2000-2014 the Libav developers
  built on Jul 15 2014 12:56:47 with gcc 4.6.3
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1e8c7a0] max_analyze_duration reached
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'SDV_1195.MP4':
  Metadata:
    major_brand     : avc1
    minor_version   : 0
    compatible_brands: avc1isom
    creation_time   : 1947-02-10 00:03:08
  Duration: 02:01:04.29, start: 0.000000, bitrate: 2137 kb/s
    Stream #0.0(eng): Video: h264 (Main), yuv420p, 720x576, 2000 kb/s, PAR 64:45 DAR 16:9, 50 fps, 50 tbr, 90k tbn, 180k tbc
    Metadata:
      creation_time   : 1947-02-10 00:03:08
    Stream #0.1(eng): Audio: aac, 48000 Hz, stereo, s16, 127 kb/s
    Metadata:
      creation_time   : 1947-02-10 00:03:08
Output #0, mp4, to '2.MP4':
  Metadata:
    major_brand     : avc1
    minor_version   : 0
    compatible_brands: avc1isom
    creation_time   : 1947-02-10 00:03:08
    encoder         : Lavf53.21.1
    Stream #0.0(eng): Video: ![0][0][0] / 0x0021, yuv420p, 720x576 [PAR 64:45 DAR 16:9], q=2-31, 2000 kb/s, 90k tbn, 90k tbc
    Metadata:
      creation_time   : 1947-02-10 00:03:08
    Stream #0.1(eng): Audio: aac, 48000 Hz, stereo, 127 kb/s
    Metadata:
      creation_time   : 1947-02-10 00:03:08
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Press ctrl-c to stop encoding
frame=    0 fps=  0 q=-1.0 Lsize=   35570kB time=2224.30 bitrate= 131.0kbits/s    /s    
video:0kB audio:34755kB global headers:0kB muxing overhead 2.345804%
oshiro@home-desktop:~/Desktop$ avconv -i SDV_1195.MP4 -ss 01:24:00 -t 01:25:30 -c:a copy -c:v copy output-clip.mp4
avconv version 0.8.13-4:0.8.13-0ubuntu0.12.04.1, Copyright (c) 2000-2014 the Libav developers
  built on Jul 15 2014 12:56:47 with gcc 4.6.3
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xd307a0] max_analyze_duration reached
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'SDV_1195.MP4':
  Metadata:
    major_brand     : avc1
    minor_version   : 0
    compatible_brands: avc1isom
    creation_time   : 1947-02-10 00:03:08
  Duration: 02:01:04.29, start: 0.000000, bitrate: 2137 kb/s
    Stream #0.0(eng): Video: h264 (Main), yuv420p, 720x576, 2000 kb/s, PAR 64:45 DAR 16:9, 50 fps, 50 tbr, 90k tbn, 180k tbc
    Metadata:
      creation_time   : 1947-02-10 00:03:08
    Stream #0.1(eng): Audio: aac, 48000 Hz, stereo, s16, 127 kb/s
    Metadata:
      creation_time   : 1947-02-10 00:03:08
Output #0, mp4, to 'output-clip.mp4':
  Metadata:
    major_brand     : avc1
    minor_version   : 0
    compatible_brands: avc1isom
    creation_time   : 1947-02-10 00:03:08
    encoder         : Lavf53.21.1
    Stream #0.0(eng): Video: ![0][0][0] / 0x0021, yuv420p, 720x576 [PAR 64:45 DAR 16:9], q=2-31, 2000 kb/s, 90k tbn, 90k tbc
    Metadata:
      creation_time   : 1947-02-10 00:03:08
    Stream #0.1(eng): Audio: aac, 48000 Hz, stereo, 127 kb/s
    Metadata:
      creation_time   : 1947-02-10 00:03:08
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Press ctrl-c to stop encoding
frame=    0 fps=  0 q=-1.0 Lsize=   35570kB time=2224.30 bitrate= 131.0kbits/s    /s    
video:0kB audio:34755kB global headers:0kB muxing overhead 2.345804%
oshiro@home-desktop:~/Desktop$ 

答案1

我在 Linux 和 Windows 上都使用过剪切视频阿维多路复用器. 它有一个易于使用的 GUI。

  • 加载视频
  • 选择起点和终点
  • 选择输出格式(使用复制以避免视频重新编码)
  • 保存你的剪切文件

在 Ubuntu 中安装它:

sudo apt-get install avidemux

答案2

需要-t一个期间, 不是时间结束

所以改为-t 60-t 0:01:00

libav 文档:

‘-t duration (output)’
    Stop writing the output after its duration reaches duration.
    duration may be a number in seconds, or in hh:mm:ss[.xxx] form.

相关内容