2014-09-28 144 views
0

在點擊一個按鈕我試圖通過使用FFmpeg C#Wrapper在兩個特定時間之間剪下一個MP4視頻。我的代碼如下:FFmpeg C#視頻轉換

private void button1_Click(object sender, EventArgs e) 
    { 
     CAVConverter converter = new CAVConverter(); 
     converter.LogPath = @"C:\Users\Rachel\Desktop\Log.txt";   
     converter.InputOptions.TimeStart = 5000000; //Start time to trim, unit is um(micro second) 
     converter.OutputOptions.TimeLength = 3000000; //Time length to trim, unit is um(micro second) 
     converter.AddTask(@"C:\\Users\\Rachel\\Desktop\\Tennis\\Serve.mp4", 
             @"C:\\Users\\Rachel\\Desktop\\Tennis\\ServeCut.mp4");    
     converter.StartAndWait();    
    } 

代碼編譯並運行然而log.txt文件返回如下:

Seems stream 0 codec frame rate differs from container frame rate: 180000.00 (180000/1) -> 90000.00 (180000/2) Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\\Users\\Rachel\\Desktop\\Tennis\\Serve.mp4': Metadata: major_brand : isom minor_version : 0 compatible_brands: isom3gp4 Duration: 00:00:38.76, start: 0.000000, bitrate: 10193 kb/s Stream #0.0(eng): Video: h264, yuv420p, 1280x720, 9982 kb/s, PAR 65536:65536 DAR 16:9, 30 fps, 90k tbr, 90k tbn, 180k tbc Stream #0.1(eng): Audio: libfaad, 48000 Hz, 2 channels, s16, 128 kb/s [mpeg4 @ 09762200]removing common factors from framerate [mpeg4 @ 09762200]timebase not supported by mpeg 4 standard Output #0, mp4, to 'C:\\Users\\Rachel\\Desktop\\Tennis\\ServeCut.mp4': Stream #0.0(eng): Video: mpeg4, yuv420p, 1280x720 [PAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 90k tbn, 90k tbc Stream #0.1(eng): Audio: libfaac, 48000 Hz, 2 channels, s16, 64 kb/s Stream mapping: Stream #0.0 -> #0.0 (Video) Stream #0.1 -> #0.1 (Audio) Error while opening encoder for output stream #0.0 (Video) - maybe incorrect parameters such as bit_rate, rate, width or height Error while opening encoder for output stream #0.0 (Video) - maybe incorrect parameters such as bit_rate, rate, width or height

我不知道很多關於FFmpeg的或視頻,所以能有人幫助我? 非常感謝

+0

是否可以顯示正在發出的實際'ffmpeg'命令和該命令完整的'ffmpeg'控制檯輸出? (我假設你正在執行'ffmpeg'二進制文件。) – LordNeckbeard 2014-09-28 18:24:45

+0

@LordNeckbeard我正在使用這個包裝器[link](http://www.ffmpeg-csharp.com/),所以我不確定它是否執行二進制? – 2014-09-28 18:29:40

+0

第一部分告訴你,vid和容器之間存在幀率不一致。後者說打開編碼器輸出時出現錯誤,所以請嘗試檢查你的參數,可能你的選項設置太少了 – CoreMeltdown 2015-12-21 23:36:25

回答

0

您可以使用類似以下的命令

System.Diagnostics.Process.Start(string fileName, string arguments); 

,或者你可以從ffmpeg的使用從官方網站的exe並通過argumentsto他們。