ffmpeg segment muxer产生无法播放的HEVC视频输出

时间:2017-09-21 16:30:31

标签: ffmpeg video-processing

我正在尝试使用ffmpeg处理来自usb网络摄像头的流式视频数据。该过程涉及将原始数据编码为hevc格式。到目前为止,我能够做到。 但是现在,我希望将处理后的数据分成10秒的块并将其保存在单独的文件中。这应该重复,直到我手动终止/中断该过程。

ffmpeg -i /dev/video1 -f segment -segment_times 10 -c:v hevc cam_1_%02d.mp4

以上代码确实创建了多个文件,但只有第一个文件可以使用vlc读取;其他文件看起来很糟糕。

在我运行命令时,我可以看到以下消息: -

Stream mapping:  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264)) Press [q] to stop, [?] for help Past duration 0.601555 too largeN/A time=00:00:14.63 bitrate=N/A dup=11 drop=0      Past duration
0.601463 too large Past duration 0.601555 too largeN/A time=00:00:15.16 bitrate=N/A dup=11 drop=0     Past duration 0.601585 too large
    Last message repeated 1 times Past duration 0.601646 too large Past duration 0.601677 too large Past duration 0.601707 too largeN/A time=00:00:15.66 bitrate=N/A dup=11 drop=0

我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

添加-reset_timestamps 1输出选项。来自segment muxer documentation

  

重置每个段开头的时间戳,以便每个段   将以接近零的时间戳开始。它旨在简化播放   生成的段的数量。可能无法使用某些组合   muxers /编解码器。默认设置为0。

另外,请考虑将-segment_times更改为-segment_time,因为您是单个时间值。