- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 zeranoe 的最新 ffmpeg 有疑问。每 13h14m ffmpeg 停止录制。
ffmpeg started on 2017-09-28 at 10:36:49
Report written to "ffmpeg-20170928-103649.log"
Command line:
"D:\\ffmpeg\\ffmpeg.exe" -report
ffmpeg version N-87353-g183fd30 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 7.2.0 (GCC)
configuration: --disable-static --enable-shared --enable-gpl --enable-version3 --enable-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib
libavutil 55. 76.100 / 55. 76.100
libavcodec 57.106.101 / 57.106.101
libavformat 57. 82.101 / 57. 82.101
libavdevice 57. 8.101 / 57. 8.101
libavfilter 6.105.100 / 6.105.100
libswscale 4. 7.103 / 4. 7.103
libswresample 2. 8.100 / 2. 8.100
libpostproc 54. 6.100 / 54. 6.100
Splitting the commandline.
Reading option '-report' ... matched as option 'report' (generate a report) with argument '1'.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option report (generate a report) with argument 1.
Successfully parsed a group of options.
Hyper fast Audio and Video encoder
我从 3 个摄像头录制视频流。
流 1:
Input #0, rtp, from 'rtp://225.1.1.1:1024':
Duration: N/A, start: 60424.501000, bitrate: N/A
Program 1
Stream #0:0: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(progressiv
e), 1920x1080 [SAR 1:1 DAR 16:9], 50 fps, 50 tbr, 90k tbn, 100 tbc
Stream #0:1(eng): Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, mono,
fltp, 164 kb/s
流 2,3:
Input #0, rtsp, from 'rtsp://192.168.3.36:554/stream1':
Metadata:
title : Session streamed by "Pelco Streaming Server"
comment : stream1
Duration: N/A, start: 0.219167, bitrate: N/A
Stream #0:0: Video: h264 (Baseline), yuv420p(progressive), 640x480, 25 fps,
25 tbr, 90k tbn, 50 tbc
我使用单独的 ffmpeg 实例每 1 分钟记录一次分段,例如:
ffmpeg -i "rtsp://192.168.3.36:554/stream1" -vcodec copy -an -f segment -strftime 1 -segment_time 60 "novus-%Y-%m-%d_%H-%M-%S.ts"
每 13 小时 14 分钟(从录制开始),每个 ffmpeg 都会停止录制,并显示诸如“输出流 0:0 中的非单调 DTS”之类的消息。当我启动每个 ffmpeg 实例时并不重要:如果我在实例 №1 之后 1 分钟启动实例 №2,它将相应地在 №1 之后的 1 分钟内停止录制。我在两台 PC 上试过:Windows Server 2012 x64 和 Windows 10 x64。
...
[NULL @ 000000000034a900] SEI type 5 size 408 truncated at 160
[segment @ 000000000034e780] stream:0 start_pts_time:47640.5 pts:4289549528 pts_time:47661.7 dts:4289549528 dts_time:47661.7 -> pts:4289549528 pts_time:47661.7 dts:4289549528 dts_time:47661.7
[NULL @ 000000000034a900] SEI type 5 size 408 truncated at 160
[segment @ 000000000034e780] stream:0 start_pts_time:47640.5 pts:4289553131 pts_time:47661.7 dts:4289553131 dts_time:47661.7 -> pts:4289553131 pts_time:47661.7 dts:4289553131 dts_time:47661.7
[NULL @ 000000000034a900] SEI type 5 size 408 truncated at 160
[segment @ 000000000034e780] stream:0 start_pts_time:47640.5 pts:4289556734 pts_time:47661.7 dts:4289556734 dts_time:47661.7 -> pts:4289556734 pts_time:47661.7 dts:4289556734 dts_time:47661.7
[NULL @ 000000000034a900] SEI type 5 size 336 truncated at 160
[segment @ 000000000034e780] Non-monotonous DTS in output stream 0:0; previous: 4289535114, current: -5428580; changing to 4289535115. This may result in incorrect timestamps in the output file.
[segment @ 000000000034e780] stream:0 start_pts_time:47640.5 pts:4289556735 pts_time:47661.7 dts:4289556735 dts_time:47661.7 -> pts:4289556735 pts_time:47661.7 dts:4289556735 dts_time:47661.7
[NULL @ 000000000034a900] SEI type 5 size 408 truncated at 160
[segment @ 000000000034e780] Non-monotonous DTS in output stream 0:0; previous: 4289535115, current: -5424977; changing to 4289535116. This may result in incorrect timestamps in the output file.
[segment @ 000000000034e780] stream:0 start_pts_time:47640.5 pts:4289556736 pts_time:47661.7 dts:4289556736 dts_time:47661.7 -> pts:4289556736 pts_time:47661.7 dts:4289556736 dts_time:47661.7
[NULL @ 000000000034a900] SEI type 5 size 408 truncated at 160
[segment @ 000000000034e780] Non-monotonous DTS in output stream 0:0; previous: 4289535116, current: -5421374; changing to 4289535117. This may result in incorrect timestamps in the output file.
[segment @ 000000000034e780] stream:0 start_pts_time:47640.5 pts:4289556737 pts_time:47661.7 dts:4289556737 dts_time:47661.7 -> pts:4289556737 pts_time:47661.7 dts:4289556737 dts_time:47661.7
frame=1190370 fps= 25 q=-1.0 size=N/A time=13:14:21.50 bitrate=N/A speed= 1x
[NULL @ 000000000034a900] SEI type 5 size 408 truncated at 160
[segment @ 000000000034e780] Non-monotonous DTS in output stream 0:0; previous: 4289535117, current: -5417772; changing to 4289535118. This may result in incorrect timestamps in the output file.
...
此问题的完整调试日志在这里(25 Mb,压缩):https://drive.google.com/file/d/0B1LIS8G55R7-OGY4QkdkQ0J1cVE/view?usp=sharing我无法无限录制视频。每 13 个小时我就会中断录音。我试着用“copytb 1”、“genpts”来记录,但没有用。我不认为这是网络问题,因为我试图通过两个 ffmpeg 实例记录相同的 rtsp 流,并且开始时移:它们分别卡在不同的时间。有谁知道如何解决它?我可以为您提供您需要的其他信息。
更新:如果我在错误出现后等待 13 小时,记录会再次开始。
最佳答案
对于某些 IP 摄像机,我们也意识到了这个问题,并找到了解决方法:
-correct_ts_overflow 0
说明:它源于 FFMPEG 中的几个问题。首先,时间戳由 RTP 分路器生成。当摄像头有多个流时,将使用 RTCP ntp 时间和 RTP 时间戳一起生成时间戳,以实现正确的流计时。但是,对于只有一个流,累积时间戳是从 RTP 时间戳生成的。问题在于某些摄像机在 SDP 中报告的起始时间戳大于用作基本时间戳的第一个 RTP 数据包时间戳。这反过来会创建一个传递给 ff_read_frame 的负时间戳。另一个问题是 RTSP/RTP 将其时间戳包装位设置为 32 位。问题是在单个流的情况下,时间戳实际上是一个 int 64 位时间戳,因为时间戳不是绝对时间戳,而是累积时间戳。此时间戳在正时间戳的第 63 位之前不会换行。
但是我们发现,在对 ff_read_frame 的调用中,有一些逻辑可以处理在翻转情况下用于查找的 PTS/DTS 包装。因为在这种情况下第一个时间戳是负数并且 wrap 位设置为 32 位,所以 wrap 代码设置不正确。因此,对于以负时间戳开头的相机,当时间戳的值大于某个索引值时,换行代码会从时间戳中减去 UINT32MAX(我相信 UINT32MAX 之前大约有 60 秒的视频)。然后从 ff_read_frame 中生成一个新的负时间戳。由于 ffmpeg.c 然后将其检测为非单调时间戳,因此新的输出时间戳仅比旧的打乱整个输出流的时间戳大一个刻度。然后,它需要另一个 UINT32MAX 时间戳才能从 RTP 多路分解器中恢复过来,或者大约需要 13 个小时。
关于ffmpeg - "Non-monotonous DTS in output stream"每 13 小时 14 分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46667502/
我正在尝试为我的 typescript 项目生成一个 typescript 定义文件,其中包含几个基/继承类、实用程序等。在我们的项目中,每个 A.ts 文件将被编译为 A.js 文件,A.js .m
当我想用 ffmpeg 连接和录制两个 mp4 视频时,我遇到了这个问题。我得到的输出是: [concat @ 0x2566e80] DTS 4079 #0:0 (h264 (native) ->
环境:Windows7,ffmpeg 4.2.2 copy the first 10 seconds from long.mp4 to UNO.mp4 copy sec 120 to sec 130
我有 2 个 ffmpeg 实例,它们正在通过一个用 C 编写的缓冲区。 ffmpeg 实例之一是创建 FLV 输出并将其发送到连接到 C 程序的 TCP 套接字。 C 正在填充一个数组,然后将数据包
我只是想从缓冲区中保存相同的视频帧,在那里我正确保存了帧的位图帧和时间戳。 writer1 = new VideoFileWriter(); this.writer1.Width = this.vid
观察 - 第一部分 - I 我在其他地方看到了运行以下命令的建议,以查看我的 .mp4 是否有问题。 ffmpeg -v error -i ~/Desktop/5_minute_sync_outpu
当通过断开连接的编辑查看 DTS 包时,转换数据任务中的目标列或源列具有 DataType 属性,其值类似于 129、130、131、135。 我在哪里可以找到这些值的含义列表? 最佳答案 我认为是
我们有一个旧的 DTS 包,我们的 SQL 2000 Server 使用它来将员工记录推送到我们制造车间的机器上。 最近,我们升级了其中一台机器,它现在正在运行 SQL 2008 Express。 我
在我正在进行的一个遗留项目中,我们有几个通过 DTS 执行的处理。 DTS 并不是我在其鼎盛时期经常使用的东西……我当时还在上大学。 更具体地说,这些过程位于 ActiveX 代码块中——基本上是用于
是否可以通过删除非单调 DTS 帧将 .ts 文件流式复制到另一个 .ts 文件?这些帧的分辨率通常也比我要复制的视频小。我尝试使用 VideoReDo 进行此操作,但没有成功,我似乎无法使其正常工作
我有几个文件需要合并。有时文件似乎可以毫无问题地工作和连接。然后在其他文件上,文件不会合并,我得到“非单调 DTS”。我一直在谷歌搜索我应该在这些文件上做些什么,以便它们正确连接,但我仍然没有找到。
我正在尝试在 Visual Basic 2010 中执行带有脚本组件的 SSIS 包。执行包时出现以下错误: public void Main() { // TODO:
我正在编译 OpenWrt(基于 Linux 的无线路由器),我在 OpenWrt 源代码中添加了一个板子,我的板子有两个 uart 端口,我可以声明并启用两个 uart 端口,这两个 uart 端口
我做了 ffmpeg -i x.mp4 -ss 17 two.mp4 现在我试着做 ffmpeg -f concat -safe 0 -i list.txt -c copy output.mp4 与
我有一些视频,我试图用 ffmpeg 连接它们,它们都可以自己正常工作,但试图用这个命令连接它们: ffmpeg -f concat -safe 0 -fflags flush_packets -ff
我有一个视频,其中包含超出视频数据末尾的一些音频数据包: $> ffprobe -show_packets video.mp4 ... ... ... [PACKET] codec_type=vide
我有三个视频,我想将它们连接在一起这个问题对于某些视频来说效果很好,但是当我测试一个特定的视频时,它给了我一个错误,并导致生成的视频以一种奇怪的方式显示,并且视频中的一切都进展得非常快就像我转发视频一
Bootloaders like U-Boot that do not implement the Open Firmware API, are expected to pass to the ker
我试图从 DTS 文件中理解以下代码段。 /dts-v1/; / { model = "MPC8313ERDB"; compatible = "MPC8313ERDB", "MPC83
我需要找到一个包含特定表名的 DTS 包。有 200 多个 DTS 包,每个包中都有多个对象。 My_Prod 是表名。是否有 T-SQL 命令来查找引用此表名的所有 DTS 包? 最佳答案 正如埃里
我是一名优秀的程序员,十分优秀!