How to Convert H.264 RTP Payload to Playable File Using Media Foundation

I need a way to make a video file from RTPFrames H.264 (payload type 96), which I get using Aggregation Managed Media Aggregation - https://net7mma.codeplex.com/ .

I am trying to use a media framework in managed code.

I saw http://mfnet.sourceforge.net/ , but I could not find how to do this. I saw that someone said in some forum that it is better to use the Media Foundation DLL in C # managed code.

Does anyone have any experience with this?

EDIT:

I am trying to use VLCDotNet to place h264 frames in a video file - here is my code

private void StoreFile() { Vlc.DotNet.Core.VlcContext.LibVlcDllsPath = @"C:\Users\Ofek\Desktop\VideoLAN\VLC"; Vlc.DotNet.Core.VlcContext.Initialize(); media1 = new Vlc.DotNet.Core.Medias.LocationMedia("rtsp://192.168.30.11/1.mkv"); media1.AddOption(":sout=#transcode{vcodec=theo,vb=800, scale=1,acodec=flac,ab=128,channels=2,samplerate=44100}:std{access=file,mux=ogg, dst=D:\\123.mp4}"); VlcControl control = new VlcControl(); control.Media = media1; control.Play(); } 

The problem is that the file was created but not playing. I am looking for a command to save an H264 stream to an mp4 file without decoding it. any ideas?

0
source share
1 answer

Try playing the stream in the background as a process.

 Process vlc; vlc = Process.Start("C://Program Files//Videolan//VLC//VLC.exe", "rtsp://192.168.30.11/1.mkv\" --qt-start-minimized --sout=#transcode{vcodec=theo,vb=800,acodec=flac,ab=128,channels=2,samplerate=44100}:file{dst=C://folder//filename.mp4,no-overwrite}"); Thread.Sleep(9000); vlc.kill(); 
0
source

Source: https://habr.com/ru/post/1442091/


All Articles