Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于FLV录制中途中断的问题 #171

Open
AsunaKazuto opened this issue Jun 1, 2023 · 7 comments
Open

关于FLV录制中途中断的问题 #171

AsunaKazuto opened this issue Jun 1, 2023 · 7 comments

Comments

@AsunaKazuto
Copy link

有时采用FLV模式进行直播录制时,录制中途有时会出现卡住的情况,录制文件大小不再增加,录制下载速度卡在一个数字上不再变化。

@AsunaKazuto AsunaKazuto changed the title 关于FLVl录制中途中断的问题 关于FLV录制中途中断的问题 Jun 1, 2023
@AsunaKazuto
Copy link
Author

2023/06/01 18:36:40:[Error][Post][477279260]Post请求发生网络层错误:UnknownError(16)[https://api.live.bilibili.com/room/v1/Room/get_status_info_by_uids] ,详细信息已写入txt文本日志中错误堆栈

System.Net.WebException: The SSL connection could not be established, see inner exception.

---> System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception.

---> System.IO.IOException: Unable to read data from the transport connection: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。.

---> System.Net.Sockets.SocketException (10060): 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。

--- End of inner exception stack trace ---

at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)

at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource<System.Int32>.GetResult(Int16 token)

at System.Net.Security.SslStream.g__InternalFillHandshakeBufferAsync|189_0[TIOAdapter](TIOAdapter adap, ValueTask`1 task, Int32 minSize)

at System.Net.Security.SslStream.ReceiveBlobAsync[TIOAdapter](TIOAdapter adapter)

at System.Net.Security.SslStream.ForceAuthenticationAsync[TIOAdapter](TIOAdapter adapter, Boolean receiveFirst, Byte[] reAuthenticationData, Boolean isApm)

at System.Net.Http.ConnectHelper.EstablishSslConnectionAsync(SslClientAuthenticationOptions sslOptions, HttpRequestMessage request, Boolean async, Stream stream, CancellationToken cancellationToken)

--- End of inner exception stack trace ---

at System.Net.Http.ConnectHelper.EstablishSslConnectionAsync(SslClientAuthenticationOptions sslOptions, HttpRequestMessage request, Boolean async, Stream stream, CancellationToken cancellationToken)

at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)

at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)

at System.Net.Http.HttpConnectionPool.AddHttp11ConnectionAsync(HttpRequestMessage request)

at System.Threading.Tasks.TaskCompletionSourceWithCancellation`1.WaitWithCancellation(CancellationToken cancellationToken)

at System.Net.Http.HttpConnectionPool.GetHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)

at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)

at System.Net.Http.HttpMessageHandlerStage.Send(HttpRequestMessage request, CancellationToken cancellationToken)

at System.Net.Http.DiagnosticsHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)

at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)

at System.Net.Http.HttpMessageHandlerStage.Send(HttpRequestMessage request, CancellationToken cancellationToken)

at System.Net.Http.SocketsHttpHandler.Send(HttpRequestMessage request, CancellationToken cancellationToken)

at System.Net.Http.HttpMessageInvoker.Send(HttpRequestMessage request, CancellationToken cancellationToken)

at System.Net.Http.HttpClient.Send(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationToken cancellationToken)

at System.Net.HttpWebRequest.SendRequest(Boolean async)

at System.Net.HttpWebRequest.GetResponse()

--- End of inner exception stack trace ---

at System.Net.HttpWebRequest.GetResponse()

at DDTV_Core.SystemAssembly.NetworkRequestModule.Post.Post.SendRequest_GetWebInfo_JsonClass(String url, String jsonParam, String encode)

2023/06/01 21:49:03:[Error][Post][488821659]Post请求发生网络层错误:UnknownError(16)[https://api.live.bilibili.com/room/v1/Room/get_status_info_by_uids] ,详细信息已写入txt文本日志中错误堆栈

System.Net.WebException: The SSL connection could not be established, see inner exception.

---> System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception.

---> System.IO.IOException: Unable to read data from the transport connection: 远程主机强迫关闭了一个现有的连接。.

---> System.Net.Sockets.SocketException (10054): 远程主机强迫关闭了一个现有的连接。

--- End of inner exception stack trace ---

at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)

at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource<System.Int32>.GetResult(Int16 token)

at System.Net.Security.SslStream.g__InternalFillHandshakeBufferAsync|189_0[TIOAdapter](TIOAdapter adap, ValueTask`1 task, Int32 minSize)

at System.Net.Security.SslStream.ReceiveBlobAsync[TIOAdapter](TIOAdapter adapter)

at System.Net.Security.SslStream.ForceAuthenticationAsync[TIOAdapter](TIOAdapter adapter, Boolean receiveFirst, Byte[] reAuthenticationData, Boolean isApm)

at System.Net.Http.ConnectHelper.EstablishSslConnectionAsync(SslClientAuthenticationOptions sslOptions, HttpRequestMessage request, Boolean async, Stream stream, CancellationToken cancellationToken)

--- End of inner exception stack trace ---

at System.Net.Http.ConnectHelper.EstablishSslConnectionAsync(SslClientAuthenticationOptions sslOptions, HttpRequestMessage request, Boolean async, Stream stream, CancellationToken cancellationToken)

at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)

at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)

at System.Net.Http.HttpConnectionPool.AddHttp11ConnectionAsync(HttpRequestMessage request)

at System.Threading.Tasks.TaskCompletionSourceWithCancellation`1.WaitWithCancellation(CancellationToken cancellationToken)

at System.Net.Http.HttpConnectionPool.GetHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)

at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)

at System.Net.Http.HttpMessageHandlerStage.Send(HttpRequestMessage request, CancellationToken cancellationToken)

at System.Net.Http.DiagnosticsHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)

at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)

at System.Net.Http.HttpMessageHandlerStage.Send(HttpRequestMessage request, CancellationToken cancellationToken)

at System.Net.Http.SocketsHttpHandler.Send(HttpRequestMessage request, CancellationToken cancellationToken)

at System.Net.Http.HttpMessageInvoker.Send(HttpRequestMessage request, CancellationToken cancellationToken)

at System.Net.Http.HttpClient.Send(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationToken cancellationToken)

at System.Net.HttpWebRequest.SendRequest(Boolean async)

at System.Net.HttpWebRequest.GetResponse()

--- End of inner exception stack trace ---

at System.Net.HttpWebRequest.GetResponse()

at DDTV_Core.SystemAssembly.NetworkRequestModule.Post.Post.SendRequest_GetWebInfo_JsonClass(String url, String jsonParam, String encode)

2023/06/01 21:49:13:[Error][Post][488831666]Post请求发生网络层错误:UnknownError(16)[https://api.live.bilibili.com/room/v1/Room/get_status_info_by_uids] ,详细信息已写入txt文本日志中错误堆栈

System.Net.WebException: The SSL connection could not be established, see inner exception.

---> System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception.

---> System.IO.IOException: Unable to read data from the transport connection: 远程主机强迫关闭了一个现有的连接。.

---> System.Net.Sockets.SocketException (10054): 远程主机强迫关闭了一个现有的连接。

--- End of inner exception stack trace ---

at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)

at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource<System.Int32>.GetResult(Int16 token)

at System.Net.Security.SslStream.g__InternalFillHandshakeBufferAsync|189_0[TIOAdapter](TIOAdapter adap, ValueTask`1 task, Int32 minSize)

at System.Net.Security.SslStream.ReceiveBlobAsync[TIOAdapter](TIOAdapter adapter)

at System.Net.Security.SslStream.ForceAuthenticationAsync[TIOAdapter](TIOAdapter adapter, Boolean receiveFirst, Byte[] reAuthenticationData, Boolean isApm)

at System.Net.Http.ConnectHelper.EstablishSslConnectionAsync(SslClientAuthenticationOptions sslOptions, HttpRequestMessage request, Boolean async, Stream stream, CancellationToken cancellationToken)

--- End of inner exception stack trace ---

at System.Net.Http.ConnectHelper.EstablishSslConnectionAsync(SslClientAuthenticationOptions sslOptions, HttpRequestMessage request, Boolean async, Stream stream, CancellationToken cancellationToken)

at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)

at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)

at System.Net.Http.HttpConnectionPool.AddHttp11ConnectionAsync(HttpRequestMessage request)

at System.Threading.Tasks.TaskCompletionSourceWithCancellation`1.WaitWithCancellation(CancellationToken cancellationToken)

at System.Net.Http.HttpConnectionPool.GetHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)

at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)

at System.Net.Http.HttpMessageHandlerStage.Send(HttpRequestMessage request, CancellationToken cancellationToken)

at System.Net.Http.DiagnosticsHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)

at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)

at System.Net.Http.HttpMessageHandlerStage.Send(HttpRequestMessage request, CancellationToken cancellationToken)

at System.Net.Http.SocketsHttpHandler.Send(HttpRequestMessage request, CancellationToken cancellationToken)

at System.Net.Http.HttpMessageInvoker.Send(HttpRequestMessage request, CancellationToken cancellationToken)

at System.Net.Http.HttpClient.Send(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationToken cancellationToken)

at System.Net.HttpWebRequest.SendRequest(Boolean async)

at System.Net.HttpWebRequest.GetResponse()

--- End of inner exception stack trace ---

at System.Net.HttpWebRequest.GetResponse()

at DDTV_Core.SystemAssembly.NetworkRequestModule.Post.Post.SendRequest_GetWebInfo_JsonClass(String url, String jsonParam, String encode)

2023/06/01 21:53:47:[Error][DownloadClass][489105463]新建下载任务发生意料外的错误 ,详细信息已写入txt文本日志中错误堆栈

System.IO.IOException: Unable to read data from the transport connection: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。.

---> System.Net.Sockets.SocketException (10060): 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。

at System.Net.Sockets.NetworkStream.Read(Span`1 buffer)

--- End of inner exception stack trace ---

at System.Net.Sockets.NetworkStream.Read(Span`1 buffer)

at System.Net.Security.SslStream.EnsureFullTlsFrameAsync[TIOAdapter](TIOAdapter adapter)

at System.Net.Security.SslStream.ReadAsyncInternal[TIOAdapter](TIOAdapter adapter, Memory`1 buffer)

at System.Net.Security.SslStream.Read(Byte[] buffer, Int32 offset, Int32 count)

at System.IO.Stream.Read(Span`1 buffer)

at System.Net.Http.HttpConnection.Read(Span`1 destination)

at System.Net.Http.HttpConnection.ConnectionCloseReadStream.Read(Span`1 buffer)

at System.Net.Http.HttpBaseStream.ReadByte()

at DDTV_Core.SystemAssembly.DownloadModule.DownloadClass.Downloads.<>c__DisplayClass119_0.<<DownFLV_HttpWebRequest>b__0>d.MoveNext()

@CHKZL
Copy link
Owner

CHKZL commented Jun 1, 2023

从错误信息来看,ddtv本身没有出现错误,是网络层面发生了错误。
具体的错误情况是
1、无法连接到B站服务器。
2、连接B站服务器超时。
请确认网络和代理是否正常,网络不稳定,和使用了不合适的代理设置都可能造成这样的结果。

之后会考虑将这类问题封装成更明显的提示文本。

@AsunaKazuto
Copy link
Author

从错误信息来看,ddtv本身没有出现错误,是网络层面发生了错误。 具体的错误情况是 1、无法连接到B站服务器。 2、连接B站服务器超时。 请确认网络和代理是否正常,网络不稳定,和使用了不合适的代理设置都可能造成这样的结果。

之后会考虑将这类问题封装成更明显的提示文本。

在进行录播的时候,其他直播间均可正常采用FLV模式录播,唯有一个直播间录播异常。该直播间在正常进行直播,录播中途中断,手动重启该直播间录播失败,删除该直播间之后又重新添加该直播间才录播正常。

@CHKZL
Copy link
Owner

CHKZL commented Jun 2, 2023

从错误信息来看,ddtv本身没有出现错误,是网络层面发生了错误。 具体的错误情况是 1、无法连接到B站服务器。 2、连接B站服务器超时。 请确认网络和代理是否正常,网络不稳定,和使用了不合适的代理设置都可能造成这样的结果。
之后会考虑将这类问题封装成更明显的提示文本。

在进行录播的时候,其他直播间均可正常采用FLV模式录播,唯有一个直播间录播异常。该直播间在正常进行直播,录播中途中断,手动重启该直播间录播失败,删除该直播间之后又重新添加该直播间才录播正常。

麻烦提供一下房间号和这一次启动对应的log文件(*.sqlite,如果有同名txt也麻烦一起提供一下),我确认一下。
ps:另外,更新到Dev版本试一试呢?我在Dev中使用了新的检测接口

@AsunaKazuto
Copy link
Author

从错误信息来看,ddtv本身没有出现错误,是网络层面发生了错误。 具体的错误情况是 1、无法连接到B站服务器。 2、连接B站服务器超时。 请确认网络和代理是否正常,网络不稳定,和使用了不合适的代理设置都可能造成这样的结果。
之后会考虑将这类问题封装成更明显的提示文本。

在进行录播的时候,其他直播间均可正常采用FLV模式录播,唯有一个直播间录播异常。该直播间在正常进行直播,录播中途中断,手动重启该直播间录播失败,删除该直播间之后又重新添加该直播间才录播正常。

麻烦提供一下房间号和这一次启动对应的log文件(*.sqlite,如果有同名txt也麻烦一起提供一下),我确认一下。 ps:另外,更新到Dev版本试一试呢?我在Dev中使用了新的检测接口

用的最新版Dev,日志我晚上找时间发给您,日志用什么方式发送?

@AsunaKazuto
Copy link
Author

AsunaKazuto commented Jun 3, 2023

从错误信息来看,ddtv本身没有出现错误,是网络层面发生了错误。 具体的错误情况是 1、无法连接到B站服务器。 2、连接B站服务器超时。 请确认网络和代理是否正常,网络不稳定,和使用了不合适的代理设置都可能造成这样的结果。
之后会考虑将这类问题封装成更明显的提示文本。

在进行录播的时候,其他直播间均可正常采用FLV模式录播,唯有一个直播间录播异常。该直播间在正常进行直播,录播中途中断,手动重启该直播间录播失败,删除该直播间之后又重新添加该直播间才录播正常。

麻烦提供一下房间号和这一次启动对应的log文件(*.sqlite,如果有同名txt也麻烦一起提供一下),我确认一下。 ps:另外,更新到Dev版本试一试呢?我在Dev中使用了新的检测接口

录制时已采用最新版Dev
直播房间:7822555
直播时间:2023.06.01
日志下载

@CHKZL
Copy link
Owner

CHKZL commented Jul 1, 2023

从错误信息来看,ddtv本身没有出现错误,是网络层面发生了错误。 具体的错误情况是 1、无法连接到B站服务器。 2、连接B站服务器超时。 请确认网络和代理是否正常,网络不稳定,和使用了不合适的代理设置都可能造成这样的结果。
之后会考虑将这类问题封装成更明显的提示文本。

在进行录播的时候,其他直播间均可正常采用FLV模式录播,唯有一个直播间录播异常。该直播间在正常进行直播,录播中途中断,手动重启该直播间录播失败,删除该直播间之后又重新添加该直播间才录播正常。

麻烦提供一下房间号和这一次启动对应的log文件(*.sqlite,如果有同名txt也麻烦一起提供一下),我确认一下。 ps:另外,更新到Dev版本试一试呢?我在Dev中使用了新的检测接口

录制时已采用最新版Dev 直播房间:7822555 直播时间:2023.06.01 日志下载

从日志中间中看,录制环境的网络状况非常不理想...各种超时和断连,这种情况下推荐HLS模式录制,HLS录制如果是偶尔断连不会影响录制内容。

FLV模式因为需要持续连接,一直重复断开连接可能会出现未知的问题,这些未知问题因为是多重网络问题叠加造成的比较难以复现。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants