الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف اتعامل مع الصوت والصورة

مغلق
بدأه سيف الدين قطز في 20 يناير 2006 · 13 رد · 1,186 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

رجاء ياخوة هل يستطيع احد ان يدلني على كيفية عمل برنامج يقو مثلا بنتقطيع وتجميع الفيديو واضافة صوت له

#2

جرب AviFile.dll والتي أرفقتها لك ... وستجد فيها طلبك بإذن الله

مثلا لإضافة صوت لملف الفيديو :

string videoFileName; // مسار ملف الفيديو 
string wavFileName; // مسار ملف الصوت
int begineFrame; // رقم الفريم الذي سوف نبدأ إضافة الصوت عليه

AviManager aviManager = new AviManager(videoFileName, true); // فتح ملف الفيديو
aviManager.AddAudioStream(waveFileName,begineFrame); // إضافة الصوت
aviManager.Close(); // اغلاق ملف الفيديو

AviFile.rar

#3

أيضا :

لعرض ال Frames في Picturebox :

string videoFileName; // مسار ملف الفيديو 
int frameNumber; // رقم الفريم الذي سوف يتم عرضه

//لفتح ملف الفيديو
AviManager aviManager = new AviManager(videoFileName, true);
VideoStream aviStream = aviManager.GetVideoStream();
aviStream.GetFrameOpen();

// لعرض الفريم
Bitmap bmp = aviStream.GetBitmap(frameNumber);
this.pictureBox1.Image = bmp;

//لإغلاق ملف الفيديو
aviStream.GetFrameClose();
aviManager.Close();
#4

لعرض معلومات عن ملف الفيديو في TextBox مثلا :

string videoFileName; // مسار ملف الفيديو 

AviManager aviManager = new AviManager(videoFileName, true);
VideoStream stream = aviManager.GetVideoStream();

//معلومات عن الفيديو
//width , height , countFrames and Frame rate

TextBox1 .Text = "Width: " + stream.Width;
TextBox1 .Text += "\r\nHeight: " + stream.Height;
TextBox1 .Text += "\r\nCount of Frames: " + stream.CountFrames;
TextBox1 .Text += "\r\nFrame Rate: " + stream.FrameRate;

//معلومات عن الصوت الموجود مع الفديو
//SamplesPerSecond , BitsPerSample and CountChannels
TextBox1 .Text += "\r\nWave Sound:";

try 
{
         AudioStream waveStream = aviManager.GetWaveStream();

         TextBox1 .Text += "\r\nSamples per Second: " + waveStream.CountSamplesPerSecond.ToString();
         TextBox1 .Text += "\r\nBits per Sample: " + waveStream.CountBitsPerSample.ToString();
         TextBox1 .Text += "\r\nChannels: " + waveStream.CountChannels.ToString();
} 
catch
 {
        TextBox1 .Text += " None";
 }
#5

لاستخراج الصوت من الفيديو ووضعه في ملف wav :

string videoFileName; // مسار ملف الفيديو 

AviManager aviManager = new AviManager(videoFileName, true);

try
 {
         AudioStream audioStream = aviManager.GetWaveStream();
         audioStream.ExportStream(@"mySound.wav");

         aviManager.Close();
} 

catch (Exception ex)
 {
MessageBox.Show("The file does not contain a wave audio stream, or it cannot be opened");
 }
#6

لعرض ملف الفيديو في picturebox :

string videoFileName; // مسار ملف الفيديو 
//picturebox1 :  يتم عرض الفيديو فيها
//Label1 : لاستخدامه كمؤشر

AviManager file = new AviManager(videoFileName, true);
VideoStream stream = file.GetVideoStream();
EditableVideoStream editableStream = new EditableVideoStream(stream);
file.Close();

AviPlayer player = new AviPlayer(editableStream, picturebox1, Label1);
player.Start();
#7

لإضافة Frames الى ملف الفيديو :

// txtNewFrameFileName : تحتوي على مسارات الصور التي سوف تضاف الى الفيديو

String tempFileName = System.IO.Path.GetTempFileName() + ".avi";
AviManager tempFile = new AviManager(tempFileName, false);

Bitmap bitmap = (Bitmap)Image.FromFile(txtNewFrameFileName.Lines[0].Trim());

// false ==> No Compresion , frame rate = 1
tempFile.AddVideoStream(false, 1, bitmap);

VideoStream stream = tempFile.GetVideoStream();

for (int n = 1; n < txtNewFrameFileName.Lines.Length; n++) {
       if (txtNewFrameFileName.Lines[n].Trim().Length > 0)
       {
            stream.AddFrame((Bitmap)Image.FromFile(txtNewFrameFileName.Lines[n]));
        }
}

editableStream.Paste(stream, 0, (int)numPastePositionBitmap.Value, stream.CountFrames);
tempFile.Close();
try { 
File.Delete(tempFileName);
 } 
catch{}
#8

المثال كما ورد من المصدر :D

aviFileWrapper1.png

aviFileWrapper7.png

aviFileWrapper6.gif

aviFileWrapperDemo_src.zip

#9

ماشاء الله بارك الله بك اخي baha_ashour

#10

مشكور اخي بهاء علي المجهود الرائع

Khaled_Tiger

النجاح الوحيد في الحياة هو أن تستطيع أن تحيا حياتك بالطريقة التي تريدها

يخاطبني السفيه بكل قبح *** فأكره أن أكون له مجيبا

يزيد سفاهة فأزيد حلمــا *** كعود زاده الإحراق طيبا

إذا نطق السفيه فلا تجبه *** فخير من إجابته السكوت

فإن كلَمته فرَجت عنــــه *** وإن خليته كمداً يـمـــوت

#11

معلومة خطيرة : :s

قد تواجهون بعض المشاكل في استخدام هذه ال dll

حيث ان هذه ال dll ليست نهائية وتحتاج الى المزيد من التعديلات

وهناك من وصف هذه ال dll بأنها Garbage

<_<

ساحاول ان اقوم بعمل التعديلات اللازمة لجعلها 100%

المصدر الاساسي :

http://www.codeproject.com/cs/media/aviFileWrapper.asp

#12

ما شاء الله عليك

ربنا يحفظك ويخليك ذخر للإسلام والمسلمين

#13

ربنا معاك و أنا هحولها بس لمه أفضه لشقيقة ال #C الكبري

#14

و من حق شكرا يا فادي علي الكتاب :)

هذا الموضوع مغلق.

مواضيع مشابهة