Я использую Axis media parser SDK для получения потока h264, как я могу записать этот поток напрямую в контейнер MPEG-4 AVC (mp4) в C # без перекодирования и потери качества видео
В настоящее время эти 2события запускаются для записи аудио и видео в файл
private void OnVideoSample(int cookieID, int sampleType,
int sampleFlags, ulong startTime, ulong stopTime, object SampleArray)
{
// Cast the buffer object to a byte array
byte[] bufferBytes = (byte[])SampleArray;
Console.WriteLine("OnVideoSample - {0} bytes", bufferBytes.Length);
// Write the data to out file
lock (fileLock)
{
outFile.Write(sampleType);
outFile.Write(sampleFlags);
outFile.Write(startTime);
outFile.Write(stopTime);
outFile.Write(bufferBytes.Length);
outFile.Write(bufferBytes, 0, bufferBytes.Length);
}
}
// Event handler callback for audio samples buffers
private void OnAudioSample(int cookieID, int sampleType,
int sampleFlags, ulong startTime, ulong stopTime, object SampleArray)
{
// Cast the buffer object to a byte array
byte[] bufferBytes = (byte[])SampleArray;
Console.WriteLine("OnAudioSample - {0} bytes", bufferBytes.Length);
// Write the data to out file
lock (fileLock)
{
outFile.Write(sampleType);
outFile.Write(sampleFlags);
outFile.Write(startTime);
outFile.Write(stopTime);
outFile.Write(bufferBytes.Length);
outFile.Write(bufferBytes, 0, bufferBytes.Length);
}
}