我正在尝试使用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我在这里错过了什么?
发布于 2017-09-21 17:36:27
添加-reset_timestamps 1输出选项。来自段文件
在每个段的开头重置时间戳,以便每个段以接近于零的时间戳开始。它的目的是简化生成片段的回放。可能无法使用某些组合的muxers/codecs。默认情况下,它设置为0。
另外,考虑将-segment_times更改为-segment_time,因为您是一个单一的时间值。
https://stackoverflow.com/questions/46348926
复制相似问题