C# ffmpeg';t处理通过ajaxc上传的文件#

C# ffmpeg';t处理通过ajaxc上传的文件#,c#,ffmpeg,C#,Ffmpeg,我试着用ffmpeg从mp4文件中提取一个部分,但它返回一个空文件,你们能帮我检查一下吗?真让我抓狂…提前感谢 1.我尝试将输出文件设置为另一个文件(不是自替换),它可以工作。 2.我试图通过ajax将文件名发回客户端,视频无法加载,但可以在服务器上播放(ffmpeg生成的文件未损坏) 3.我关闭本地主机并重新启动它,mp4文件可以正确加载 --问题: 1.上传到服务器的文件是否已被占用?(我尝试删除它,可以使用,生成原始文件后已调用dispose) 2.为什么我重新启动localhost,它变

我试着用ffmpeg从mp4文件中提取一个部分,但它返回一个空文件,你们能帮我检查一下吗?真让我抓狂…提前感谢

1.我尝试将输出文件设置为另一个文件(不是自替换),它可以工作。 2.我试图通过ajax将文件名发回客户端,视频无法加载,但可以在服务器上播放(ffmpeg生成的文件未损坏) 3.我关闭本地主机并重新启动它,mp4文件可以正确加载

--问题: 1.上传到服务器的文件是否已被占用?(我尝试删除它,可以使用,生成原始文件后已调用dispose)

2.为什么我重新启动localhost,它变得可行??在关闭localhost期间做了什么

for C# code to save file,please refer to below
HttpPostedFileWrapper video---param
string extension = new FileInfo(video.FileName).Extension;
string videoId = DateTime.Now.Ticks.ToString();
string filePath =HttpContext.Current.Server.MapPath("~/video/" + videoId + extension);
var videoFile = File.Create(filePath);
video.InputStream.Seek(0, SeekOrigin.Begin);
video.InputStream.CopyTo(videoFile);
videoFile.Close();
videoFile.Dispose();
有关ffmpeg,请参阅下文

E:\tools\ticon\ffmpeg-20180619-a990184-win64-static\bin>ffmpeg -ss 1.67 -t 4.10 -i E:\MyMVCProj\MyMVCProj\MyMVCProj\video\7802334805.mp4 -vcodec copy -acodec copy E:\MyMVCProj\MyMVCProj\MyMVCProj\video\7802334805.mp4 -y
ffmpeg version N-91330-ga990184007 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 7.3.0 (GCC)
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth
libavutil      56. 18.102 / 56. 18.102
libavcodec     58. 20.103 / 58. 20.103
libavformat    58. 17.100 / 58. 17.100
libavdevice    58.  4.101 / 58.  4.101
libavfilter     7. 25.100 /  7. 25.100
libswscale      5.  2.100 /  5.  2.100
libswresample   3.  2.100 /  3.  2.100
libpostproc    55.  2.100 / 55.  2.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from      
'E:\MyMVCProj\MyMVCProj\MyMVCProj\video\7802334805.mp4':
Metadata:
major_brand     : mp42
minor_version   : 1
compatible_brands: mp41mp42isom
creation_time   : 2018-06-21T11:26:01.000000Z
Duration: 00:00:09.80, start: 0.000000, bitrate: 1284 kb/s
Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 62 kb/s (default)
Metadata:
  creation_time   : 2018-06-21T11:26:01.000000Z
  handler_name    : Core Media Audio
 Stream #0:1(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, smpte170m/bt709/bt709, progressive), 960x540, 1216 kb/s, 30 fps, 30 tbr, 600 tbn, 1200 tbc (default)

Metadata:
    rotate          : 90
    creation_time   : 2018-06-21T11:26:01.000000Z
    handler_name    : Core Media Video
  Side data:
  displaymatrix: rotation of -90.00 degrees
Output #0, mp4, to 'E:\MyMVCProj\MyMVCProj\MyMVCProj\video\7802334805.mp4':
Metadata:
major_brand     : mp42
minor_version   : 1
compatible_brands: mp41mp42isom
encoder         : Lavf58.17.100
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, smpte170m/bt709/bt709, progressive), 960x540, q=2-31, 1216 kb/s, 30 fps, 30 tbr, 19200 tbn, 600 tbc (default)
Metadata:
  rotate          : 90
  creation_time   : 2018-06-21T11:26:01.000000Z
  handler_name    : Core Media Video
Side data:
  displaymatrix: rotation of -90.00 degrees
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 62 kb/s (default)
Metadata:
  creation_time   : 2018-06-21T11:26:01.000000Z
  handler_name    : Core Media Audio
Stream mapping:
Stream #0:1 -> #0:0 (copy)
Stream #0:0 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame=    0 fps=0.0 q=-1.0 Lsize=       0kB time=00:00:00.00 bitrate=N/A speed=   0x
 video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

[resolved]ffmpeg最新版本中一定有一些致命的错误,我将其降级到了以前的版本,它工作正常。

看起来文件被锁定了,可能是您的文件写入c#代码没有释放其资源。通过添加相关的c#code.BTW“我已经打过电话了”来改进您的问题。。。我想看看这些代码,可能有更简单的方法来编写文件,例如像
视频。InputStream
也实现了
IDisposable
。使用后您既不会关闭它,也不会处理它。我会尝试一下,谢谢!我试图为此调用dispose func,但仍然返回了一个0KB的文件..可能该文件仍被某个线程使用。。