【问题标题】:ffmpeg: unable to cut avi movieffmpeg:无法剪切 avi 电影
【发布时间】:2016-03-10 14:44:28
【问题描述】:

我正在使用ffmpeg剪切视频文件:

ffmpeg -<InputFile> -ss 00:00:00 -t 00:00:30 <OutputFile>

不包括 *.avi 格式的不同文件格式都可以。对于 avi 电影,ffmpeg 显示视频被截断,但输出文件包含完整视频(不截断)。 有人知道解决问题的可能方法吗?

这里转换为avi文件的命令输出:

FFmpeg version SVN-r26402, Copyright (c) 2000-2011 the FFmpeg developers
  built on Feb  1 2011 02:54:36 with gcc 4.4.5
  configuration: --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab
  libavutil     50.36. 0 / 50.36. 0
  libavcore      0.16. 1 /  0.16. 1
  libavcodec    52.108. 0 / 52.108. 0
  libavformat   52.93. 0 / 52.93. 0
  libavdevice   52. 2. 3 / 52. 2. 3
  libavfilter    1.74. 0 /  1.74. 0
  libswscale     0.12. 0 /  0.12. 0
  libpostproc   51. 2. 0 / 51. 2. 0
[mpeg4 @ 0x91e7e10] Invalid and inefficient vfw-avi packed B frames detected

Seems stream 0 codec frame rate differs from container frame rate: 30000.00 (30000/1) -> 25.00 (25/1)
Input #0, avi, from '/home/mightymeeting/Videos/tam-19.avi':
  Duration: 00:04:43.32, start: 0.000000, bitrate: 564 kb/s
    Stream #0.0: Video: mpeg4, yuv420p, 352x208 [PAR 1:1 DAR 22:13], 25 fps, 25 tbr, 25 tbn, 30k tbc
    Stream #0.1: Audio: mp3, 32000 Hz, 2 channels, s16, 80 kb/s
[buffer @ 0x91e6ed0] w:352 h:208 pixfmt:yuv420p
Output #0, avi, to 'out.avi':
  Metadata:
    ISFT            : Lavf52.93.0
    Stream #0.0: Video: mpeg4, yuv420p, 352x208 [PAR 1:1 DAR 22:13], q=2-31, 200 kb/s, 25 tbn, 25 tbc
    Stream #0.1: Audio: mp2, 32000 Hz, 2 channels, s16, 64 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1
Press [q] to stop encoding
[mpeg4 @ 0x91e7e10] Invalid and inefficient vfw-avi packed B frames detected
frame= 7082 fps=999 q=2.0 Lsize=    7513kB time=30.02 bitrate=2049.8kbits/s dup=0 drop=1    
video:7079kB audio:235kB global headers:0kB muxing overhead 2.718192%

【问题讨论】:

  • 添加了多少额外的视频?拥有 B 帧(尤其是如果它们存在问题)将需要在您剪切的位置之前包含帧。
  • 致 Iain Ballard:我想剪切不同的视频,但只有一个 *.avi 文件失败...文件输出包含消息“检测到无效和低效的 vfw-avi 打包 B 帧”,

标签: ffmpeg


【解决方案1】:

听起来可能是一个 DivX 文件。试试

ffmpeg -i INPUT.avi -c copy -ss 00:00:00 -t 00:00:30 -bsf:v mpeg4_unpack_bframes OUTPUT.avi

来自documentation

DivX 样式的打包 B 帧不是有效的 MPEG-4,只是一个 Windows 子系统损坏的视频的解决方法。他们使用更多 空间,可能会导致轻微的 AV 同步问题,需要更多的 CPU 功率 解码(除非播放器有一些解码的图片队列来补偿 每个数据包样式的 2,0,2,0 帧),如果复制到 标准容器,如 mp4 或 mpeg-ps/ts,因为 MPEG-4 解码器可能 无法解码它们,因为它们不是有效的 MPEG-4。

【讨论】:

    猜你喜欢
    • 2015-04-04
    • 2019-09-29
    • 2014-07-03
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 2015-08-07
    • 1970-01-01
    • 2012-12-05
    相关资源
    最近更新 更多