ffmpegを使用して2つのビデオを並行してマージしようとしています。各ビデオのサイズが1MB未満であれば正常に動作しています.1MBの変換プロセスを超えると無限の時間がかかります。それを速くする方法がありますか、私はコマンドラインを変更する必要があります。ここでは、ここで2つのビデオをC#で並行してマージする大きなファイルで作業しない
ProcessStartInfo proce = new ProcessStartInfo("ffmpeg.exe");
proce.WorkingDirectory = @"d:\vid";
Process p = Process.Start(proce);
string wavefilep = @"D:\vid\camVid1.avi";
string videop = @"D:\vid\DeskCamVid1.avi";
string fileout = @"D:\vid\OutPut123.avi";
System.Diagnostics.Process proc = new System.Diagnostics.Process();
try
{
proc.StartInfo.Arguments = string.Format(" -i {0} -i {1} -filter_complex \"[0:v:0]pad=iw*4:iw[bg]; [bg][1:v:0] overlay=h\" {2}",wavefilep,videop,fileout);
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.FileName = @"d:\vid\ffmpeg.exe";
proc.Start();
string StdOutVideo = proc.StandardOutput.ReadToEnd();
string StdErrVideo = proc.StandardError.ReadToEnd();
MessageBox.Show(" video done");
をしようとしているスニペットでは、動画ここ
-i vidoe1.avi -i video2.avi -filter_complex "[0:v:0]pad=iw*2:ih[bg]; [bg][1:v:0]overlay=3*w" output.avi
をマージして使用していますコマンドでのffmpegの出力ログには、私はそれがこのフレームで
ffmpeg version N-86482-gbc40674 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 7.1.0 (GCC)
configuration: --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-libzimg --enable-lzma --enable-zlib
libavutil 55. 66.100/55. 66.100
libavcodec 57. 99.100/57. 99.100
libavformat 57. 73.100/57. 73.100
libavdevice 57. 7.100/57. 7.100
libavfilter 6. 92.100/6. 92.100
libswscale 4. 7.101/4. 7.101
libswresample 2. 8.100/2. 8.100
libpostproc 54. 6.100/54. 6.100
Input #0, avi, from 'd:\vid\camVid1.avi':
Metadata:
encoder : Lavf57.56.100
Duration: 00:01:49.64, start: 0.000000, bitrate: 347 kb/s
Stream #0:0: Video: mpeg4 (Simple Profile) (FMP4/0x34504D46), yuv420p, 640x480 [SAR 1:1 DAR 4:3], 342 kb/s, 25 fps, 25 tbr, 25 tbn, 25 tbc
Input #1, avi, from 'd:\vid\DeskCamVid1.avi':
Metadata:
encoder : Lavf57.56.100
Duration: 00:01:48.80, start: 0.000000, bitrate: 427 kb/s
Stream #1:0: Video: mpeg4 (Simple Profile) (FMP4/0x34504D46), yuv420p, 1366x768 [SAR 1:1 DAR 683:384], 422 kb/s, 25 fps, 25 tbr, 25 tbn, 25 tbc
File 'd:\vid\outap.avi' already exists. Overwrite ? [y/N] Stream mapping:
Stream #0:0 (mpeg4) -> pad
Stream #1:0 (mpeg4) -> overlay:overlay
overlay -> Stream #0:0 (mpeg4)
Press [q] to stop, [?] for help
Output #0, avi, to 'd:\vid\outap.avi':
Metadata:
ISFT : Lavf57.73.100
Stream #0:0: Video: mpeg4 (FMP4/0x34504D46), yuv420p, 2560x640 [SAR 1:1 DAR 4:1], q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc (default)
Metadata:
encoder : Lavc57.99.100 mpeg4
Side data:
cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1
frame= 28 fps=0.0 q=31.0 size= 325kB time=00:00:03.60 bitrate= 740.3kbits/s speed=7.12x
frame= 59 fps= 59 q=31.0 size= 416kB time=00:00:07.72 bitrate= 441.8kbits/s speed=7.67x
frame= 90 fps= 60 q=31.0 size= 536kB time=00:00:11.84 bitrate= 370.8kbits/s speed=7.85x
frame= 121 fps= 60 q=24.8 size= 661kB time=00:00:15.96 bitrate= 339.5kbits/s speed= 7.9x
frame= 152 fps= 60 q=31.0 size= 762kB time=00:00:20.08 bitrate= 310.9kbits/s speed=7.96x
frame= 183 fps= 61 q=31.0 size= 883kB time=00:00:24.20 bitrate= 299.0kbits/s speed= 8x
frame= 215 fps= 61 q=31.0 size= 974kB time=00:00:28.44 bitrate= 280.6kbits/s speed=8.05x
frame= 246 fps= 61 q=31.0 size= 1100kB time=00:00:32.56 bitrate= 276.8kbits/s speed=8.05x
frame= 278 fps= 61 q=31.0 size= 1234kB time=00:00:36.80 bitrate= 274.6kbits/s speed=8.08x
frame= 310 fps= 61 q=31.0 size= 1327kB time=00:00:41.08 bitrate= 264.6kbits/s speed=8.13x
frame= 340 fps= 61 q=31.0 size= 1439kB time=00:00:45.04 bitrate= 261.7kbits/s speed=8.11x
frame= 371 fps= 61 q=31.0 size= 1525kB time=00:00:49.16 bitrate= 254.1kbits/s speed=8.11x
frame= 403 fps= 61 q=31.0 size= 1639kB time=00:00:53.44 bitrate= 251.2kbits/s speed=8.13x
frame= 434 fps= 61 q=31.0 size= 1753kB time=00:00:57.56 bitrate= 249.5kbits/s speed=8.14x
frame= 466 fps= 61 q=31.0 size= 1845kB time=00:01:01.80 bitrate= 244.6kbits/s speed=8.16x
frame= 497 fps= 61 q=31.0 size= 1958kB time=00:01:05.92 bitrate= 243.3kbits/s speed=8.15x
を突っ込んアプリケーションを実行するたびです
あなたの質問は何ですか? – rene
ファイルを通常(コマンドラインから)変換してみてください。それが遅い場合でも、ffmpegコードベースに貢献する以外には何もできません。 –
コマンドラインツールを起動しているだけなので、ツールのドキュメントまたはサポートを参照して問題を解決する必要があります。これはプログラミングの問題ではなく、ツールです。 –