2016-11-06 7 views
-1

異なるビットレートで1つのビデオを再生したい。私は1080Pの解像度で1つのビデオをアップロードしたように私は720P、480P、360P、240P、144Pなどでそのビデオを再生したい。 私はC#を使用してasp.netでこのソリューションをしたい。asp.netを使用して複数のビットレートでビデオを変換する方法

のようなyoutubeでは、さまざまな解像度でビデオを見る機能を提供しています。

これについてお手伝いしてください。

私は、次のコードを試みたが、動作していない:

あなたが にFFmpegプロジェクトのFFplayを使用することができます
using Softpae.Media; 
namespace ConsoleTest 
{ 
class Program 
{ 
    static void Main(string[] args) 
    { 
     Job2Convert myJob = new Job2Convert(); 
     MediaServer ms = new MediaServer(); 
     myJob.pszSrcFile = "E:\\EhabVideoLibrary\\videos\\sinbad.mkv"; 
     myJob.pszDstFile = "E:\\EhabVideoLibrary\\videos\\sinbad.mp4"; 

     myJob.pszDstFormat = "mp4"; 
     myJob.pszAudioCodec = "aac"; 

     myJob.nAudioChannels = 2; 
     myJob.nAudioBitrate = -1; 
     myJob.nAudioRate = -1; 

     myJob.pszVideoCodec = "h264"; 

     myJob.nVideoBitrate = -1; 
     myJob.nVideoFrameRate = -1; 
     myJob.nVideoFrameWidth = -1; 
     myJob.nVideoFrameHeight = -1; 

     bool ret = ms.ConvertFile(myJob);    
    } 
} 

}

答えて

2

。 (ffmpeg.org)FFmpegを使用すると、あなたが望む解像度のほぼすべてのコーデックをエンコードしてトランスコードすることが可能です。このthreadでは、C#を使用しているコマンドラインアプリケーションを使用しています。

私はそれを試したことがありませんが、このようにFFmpegを使用して、.NETのために提供のライブラリもあります

intuitive.sk/fflib

  • ffmpegdotnet.codeplex.com
  • は、それで成功!

    using System; 
    
        namespace ConsoleApplication_FFmpegDemo 
        { 
         class Program 
         { 
          static void Main(string[] args) 
          { 
           string inputVideo = @"C:\Users\Public\Videos\Sample Videos\Wildlife.wmv"; 
           string outputVideo = @"C:\Users\Public\Videos\Sample Videos\Wildlife.mp4"; 
    
           string ffmpegArg = string.Format("-i \"{0}\" -vf scale=320:240 \"{1}\"", inputVideo, outputVideo); 
           string ffmpegPath = @"C:\Portable\ffmpeg-win32-static\bin\ffmpeg.exe"; 
           FFmpegTask ffmpegTask = new FFmpegTask(ffmpegPath, ffmpegArg); 
           ffmpegTask.Start(); 
    
           Console.ReadLine(); 
          } 
         } 
        } 
    

    そしてFFmpegTask:ここ

    はffmpegのを使用してサンプルコード(私はwin7のVMの下でそれをテストした)です。

    using System; 
    using System.Collections.Generic; 
    using System.Linq; 
    using System.Text; 
    using System.Threading.Tasks; 
    using System.Diagnostics; 
    using System.IO; 
    
    namespace ConsoleApplication_FFmpegDemo 
    { 
        public class FFmpegTask 
        { 
         public Process process = new Process(); 
    
         public FFmpegTask(string ffmpegPath, string arguments) 
         { 
          process.StartInfo.FileName = ffmpegPath; 
          process.StartInfo.Arguments = arguments; 
          process.StartInfo.RedirectStandardOutput = true; 
          process.StartInfo.CreateNoWindow = false; 
          process.StartInfo.UseShellExecute = false; 
         } 
    
         public bool Start() 
         { 
          return process.Start(); 
         } 
        } 
    } 
    
+0

あなたの返信ありがとう...あなたがサンプルを提供するなら、より良いでしょう。 –

+0

私は次のコードを試しましたが、動作しません。 –

関連する問題