我正在使用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%
答案 0 :(得分:0)
听起来这可能是一个DivX文件。尝试
ffmpeg -i INPUT.avi -c copy -ss 00:00:00 -t 00:00:30 -bsf:v mpeg4_unpack_bframes OUTPUT.avi
DivX风格的打包B帧不是有效的MPEG-4,只是一个 破坏的Video for Windows子系统的解决方法。他们使用更多 空间,可能会导致轻微的AV同步问题,需要更多的CPU电源 解码(除非播放器有一些解码图像队列来补偿 每个数据包样式为2,0,2,0帧)并且如果被复制到a中会导致麻烦 标准容器如mp4或mpeg-ps / ts,因为MPEG-4解码器可能 无法解码它们,因为它们不是有效的MPEG-4。