使用 ffmpeg 编码时出错:“[NULL @ 0x16a4010]错误,非单调时间戳”

使用 ffmpeg 编码时出错:“[NULL @ 0x16a4010]错误,非单调时间戳”

我一直无法对视频进行编码。我可以将视频编码为 MPG,但大小却大了 10 倍以上(不是开玩笑)。

所以我想做点简单的事情。去掉声音,复制视频,如下所示:

ffmpeg -i 5.flv -vcodec copy -an 5o.flv

它做不到这一点!请注意,它可以生成非常大的 MPG 文件,VideoLAN 可以播放它。但是没有关键帧,所以我可以跳转。它是通过复制流生成的。结果是。

FFmpeg version 0.5, Copyright (c) 2000-2009 Fabrice Bellard, et al.
  configuration: --enable-gpl --enable-postproc --enable-swscale --enable-avfilt
er --enable-avfilter-lavf --enable-pthreads --enable-avisynth --enable-libfaac -
-enable-libfaad --enable-libmp3lame --enable-libspeex --enable-libtheora --enabl
e-libvorbis --enable-libxvid --enable-libx264 --enable-memalign-hack
  libavutil     49.15. 0 / 49.15. 0
  libavcodec    52.20. 0 / 52.20. 0
  libavformat   52.31. 0 / 52.31. 0
  libavdevice   52. 1. 0 / 52. 1. 0
  libavfilter    0. 4. 0 /  0. 4. 0
  libswscale     0. 7. 1 /  0. 7. 1
  libpostproc   51. 2. 0 / 51. 2. 0
  built on Mar 16 2009 16:09:18, gcc: 4.2.4 [Sherpya]
Input #0, flv, from '5.flv':
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0.0: Video: flv, yuv420p, 320x240, 1k tbr, 1k tbn, 1k tbc
    Stream #0.1: Audio: nellymoser, 11025 Hz, mono, s16
File '5o.flv' already exists. Overwrite ? [y/N] y
Output #0, flv, to '5o.flv':
    Stream #0.0: Video: flv, yuv420p, 320x240, q=2-31, 90k tbn, 1k tbc
Stream mapping:
  Stream #0.0 -> #0.0
Press [q] to stop encoding
[NULL @ 0x16a4010]error, non monotone timestamps 1571775 >= 11811
av_interleaved_write_frame(): Error while opening file

D:\>

文件大小为 716kb(共 8.9mb)。所以它已经启动了,只是出现了问题。我该如何让它忽略错误或修复这个问题?

答案1

尝试使用不同的语法来设置视频编解码器

ffmpeg -i 5.flv -c:v copy -an 5o.flv

我可以用我手上的 mkv 文件来做到这一点

答案2

建议退房手刹.
它适用于 Windows 和 Unix(Ubuntu)。
对于 Ubuntu,请直接在 synaptic 上尝试。

这里有一个ffmpeg 备忘单参考详细的操作方法,如果您想深入了解 ffmpeg。


您的命令似乎建议使用 FLV 输入文件...
您可以通过GSpot 2.70a并进一步描述一下编码?
Handbrake 通常能很好地选择标准格式进行转换。

相关内容