2014-09-28 2 views
0

Одним нажатием кнопки я пытаюсь обрезать видео MP4 между двумя определенными временами с помощью FFmpeg C# Wrapper. Мой код выглядит следующим образом:FFmpeg C# Video Conversion

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

+0

@LordNeckbeard Я использую эту оболочку [link] (http://www.ffmpeg-csharp.com/), поэтому я не уверен, что она выполняется двоичный? –

+0

Первая часть сообщает вам, что между vid и контейнером возникает несогласованность кадров. Последний говорит, что есть ошибка при открытии кодировщика для вывода, поэтому попробуйте проверить свои параметры, возможно, у вас слишком мало настроек – CoreMeltdown

ответ

0

Вы можете использовать команды, как этот

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

или вы можете использовать ехе с официального сайта из FFmpeg и передать argumentsto их.