Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
1 / 1 / 1
Регистрация: 16.05.2012
Сообщений: 40
1

FFMPEG. Указать в аргументе куда сохранить видео файл

02.10.2013, 13:25. Просмотров 3188. Ответов 2
Метки нет (Все метки)


Дорогие программисты скажите, а возможно ли реализовать сохранение конвертируемого файла в FFMPEG в нужную нам директорию?
Вот у меня скажем такой код:
C#
1
string cmd = " -i " + txtSave.Text + ext + " -ar 22050 -qscale " + quality + " -s 640x480 -y " + txtSave.Text + ".flv";
Очень желал бы сохранить FLV файл не в bin директории, а
C#
1
string flvpath = Application.StartupPath + "\\outputFLV\\";
Скажите как это можно реализовать, пытался прописать в аргументе, выдаёт ошибку.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.10.2013, 13:25
Ответы с готовыми решениями:

Как правильно указать путь к папке на телефоне, куда нужно сохранить файл с FTP-сервера?
Скачиваю файл с FTP по нажатию кнопки в папку на телефоне. Как правильно указать эту папку?...

Выбирать куда сохранить файл
Добрый день все!) Столкнулся с такой проблемой может кто сможет подсказать или помочь. Сделал...

Как предложить куда сохранить файл?
Текстовый файл сохраняется в папку загрузок по умолчанию, как сделать чтобы был выбор места...

FFMPEG libx264 Как правильно указать параметры энкодеру?
Вот кусок кода. Есть исходный файл видео. Какие параметры нужно указать энкодеру, чтобы при...

2
Эксперт .NET
14843 / 11230 / 2947
Регистрация: 17.09.2011
Сообщений: 18,813
02.10.2013, 13:46 2
C#
1
2
3
string input = txtSave.Text + ".flv";
string output = System.IO.Path.Combine(Application.StartupPath, "outputFLV", input);
string cmd = string.Format(" -i \"{0}\" -ar 22050 -qscale {1} -s 640x480 -y \"{2}\"", input, quality, output);
Суть в том, что если путь содержит пробелы, то он должен быть в кавычках.
Остальное — немного прибрал код.
1
1 / 1 / 1
Регистрация: 16.05.2012
Сообщений: 40
02.10.2013, 16:43  [ТС] 3
Цитата Сообщение от kolorotur Посмотреть сообщение
C#
1
2
3
string input = txtSave.Text + ".flv";
string output = System.IO.Path.Combine(Application.StartupPath, "outputFLV", input);
string cmd = string.Format(" -i \"{0}\" -ar 22050 -qscale {1} -s 640x480 -y \"{2}\"", input, quality, output);
Суть в том, что если путь содержит пробелы, то он должен быть в кавычках.
Остальное — немного прибрал код.
А еще такой вопрос. А можно в в аргументе прописать конвертирование сразу два файла?

Добавлено через 41 минуту
Цитата Сообщение от kolorotur Посмотреть сообщение
C#
1
2
3
string input = txtSave.Text + ".flv";
string output = System.IO.Path.Combine(Application.StartupPath, "outputFLV", input);
string cmd = string.Format(" -i \"{0}\" -ar 22050 -qscale {1} -s 640x480 -y \"{2}\"", input, quality, output);
Суть в том, что если путь содержит пробелы, то он должен быть в кавычках.
Остальное — немного прибрал код.
Не работает у меня, извините.
А можете чуть чуть получше код прибрать, а то мне как новичку это тяжело въехать
У меня такой код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
private void btnOpen_Click(object sender, EventArgs e)
        {
            
            if (dlgOpen.ShowDialog() == DialogResult.OK)
            {
 
                string ext = Path.GetExtension(dlgOpen.FileName);
               
                txtOpen.Text = dlgOpen.FileName;
 
 
                char[] letters = "rakvexplvceaqzmvwxklgfcys1234567890WALHCVRSEP".ToCharArray();
                Random r = new Random();
                
                string randomString = "";
                for (int i = 0; i < 25; i++)
                {
                    randomString += letters[r.Next(0, 45)].ToString();
                }
                txtSave.Text = randomString;
                
                File.Copy(txtOpen.Text, Application.StartupPath + "\\" + randomString + ext);
 
            }
 
 
        }
 
   private Process proc = new Process();
        public object startConversion()
        {
 
            Control.CheckForIllegalCrossThreadCalls = false;
           
            
            string exepath = Application.StartupPath + "\\bin\\ffmpeg.exe";
 
            int quality = TrackBar1.Value * 2;
 
            string ext = Path.GetExtension(dlgOpen.FileName); // Расширение открываемого файла
 
            System.Diagnostics.ProcessStartInfo startinfo = new System.Diagnostics.ProcessStartInfo();
            StreamReader sr = null;
            string cmd = " -i " + txtSave.Text + ext + " -ar 22050 -qscale " + quality + " -s 640x480 -y " + txtSave.Text + ".flv";
            string ffmpegOutput = null;
            startinfo.FileName = exepath;
            startinfo.Arguments = cmd;
            startinfo.UseShellExecute = false;
            startinfo.WindowStyle = ProcessWindowStyle.Hidden;
            startinfo.RedirectStandardError = true;
            startinfo.RedirectStandardOutput = true;
            startinfo.CreateNoWindow = true;
            proc.StartInfo = startinfo;
            proc.Start(); 
            this.lblInfo.Text = "Conversion in progress... Please wait...";
            sr = proc.StandardError;
            this.btnStart.Enabled = false;
            do
            {
                if (BackgroundWorker1.CancellationPending) //check if a cancellation request was made
                {
                    return null;
                }
                ffmpegOutput = sr.ReadLine();
                this.txtProgress.Text = ffmpegOutput;
            } while (!(proc.HasExited && ffmpegOutput == "" || ffmpegOutput == ""));
 
            this.txtProgress.Text = "Finished !";
            this.lblInfo.Text = "Completed!";
            MessageBox.Show("Completed!", string.Empty, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            this.btnStart.Enabled = true;
            return 0;
 
        }
Добавлено через 1 час 16 минут
Благодарю! В коде разобрался.
А вы не знаете как одновременно с конвертировать файл FLV и создать из видео файл Jpeg?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.10.2013, 16:43

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Можно ли как нибуь сохранить видео файл в базу данных?
Приветствую форумчане! Надо на форме воспроизвести видеофайл. Но я его должен сохранить в базе...

видео из ffmpeg
Подскажите можно ли сделать с помощью ffmpeg видео из картинок png, если картинки не через равные...

Как можно записать видео на экране и сохранить его в avi файл?
Привет всем у меня такой вопрос, как можно записать видео на екране и сохранить его в avi файл,...

Потоковое видео с ffmpeg
Есть несжатое видео с камеры 320x240, и его нужно передавать на удалённый компьютер в реальном...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.