使用 ffmpeg 和 easy screen 时出现的问题:管道损坏

使用 ffmpeg 和 easy screen 时出现的问题:管道损坏

我正在尝试使用 easy screen 录制我的屏幕。我认为它使用一个名为的 CLI 工具ffmpeg,并为我们提供了一个 GUI 来使用 CLI 版本。我这样想对吗?

无论如何,当我尝试录制屏幕时,我收到一个错误屏幕

ffmpeg version 2020-12-15-git-32586a42da-essentials_build-www.gyan.dev Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 10.2.0 (Rev5, Built by MSYS2 project)
  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberband
  libavutil      56. 62.100 / 56. 62.100
  libavcodec     58.115.102 / 58.115.102
  libavformat    58. 65.100 / 58. 65.100
  libavdevice    58. 11.103 / 58. 11.103
  libavfilter     7. 93.100 /  7. 93.100
  libswscale      5.  8.100 /  5.  8.100
  libswresample   3.  8.100 /  3.  8.100
  libpostproc    55.  8.100 / 55.  8.100
Input #0, rawvideo, from '\\.\pipe\captura-fe91177e-9004-4cd3-96f9-3111a2b67705':
  Duration: N/A, start: 0.000000, bitrate: 335708 kb/s
    Stream #0:0: Video: rawvideo (BGRA / 0x41524742), bgra, 1366x768, 335708 kb/s, 10 tbr, 10 tbn, 10 tbc
C:\Users\44746\Documents\EasyScreen\2020-12-18-07-46-39.mp4: Permission denied

另一个错误屏幕显示此信息(管道破裂)

System.IO.IOException: Pipe is broken.
   at System.IO.Pipes.PipeStream.WinIOError(Int32 errorCode)
   at System.IO.Pipes.PipeStream.BeginWriteCore(Byte[] buffer, Int32 offset, Int32 count, AsyncCallback callback, Object state)
   at System.IO.Pipes.PipeStream.BeginWrite(Byte[] buffer, Int32 offset, Int32 count, AsyncCallback callback, Object state)
   at System.IO.Stream.<>c.<BeginEndWriteAsync>b__53_0(Stream stream, ReadWriteParameters args, AsyncCallback callback, Object state)
   at System.Threading.Tasks.TaskFactory`1.FromAsyncTrim[TInstance,TArgs](TInstance thisRef, TArgs args, Func`5 beginMethod, Func`3 endMethod)
   at System.IO.Stream.BeginEndWriteAsync(Byte[] buffer, Int32 offset, Int32 count)
   at System.IO.Stream.WriteAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken)
   at System.IO.Stream.WriteAsync(Byte[] buffer, Int32 offset, Int32 count)
   at Captura.Models.FFmpegWriter.WriteFrame(IBitmapFrame Frame)
   at Captura.Models.WithPreviewWriter.WriteFrame(IBitmapFrame Image)
   at Screna.Recorder.DoWrite()

您认为我只需要以管理员身份运行吗?如果是这样,我该如何让 easy screen 在 CLI 中以管理员身份运行?

或者您认为我应该放弃这种无用 GUI 并坚持使用 PowerShell?

(我的意思是,这段代码看起来像是试图输入下一组命令,但由于缺乏管理员权限而失败......这有意义吗?)

相关内容