gpt4 book ai didi

c# - 媒体元素显示 H264 比特流 [UWP]

转载 作者:行者123 更新时间:2023-12-04 23:19:22 30 4
gpt4 key购买 nike

我正在开发一个应该播放流视频的应用程序
我正在尝试在 MediaElement 中播放 h264 流媒体视频,但 MediaElement 保持为空
我用 FFmpeg作为视频源

ffmpeg -r 20   -f gdigrab   -i desktop   -f mpegts  -vcodec libx264 udp://127.0.0.1:5555 
在客户端 (UWP) 我使用 FFmpegInterop图书馆
正确检测到视频的编解码器和分辨率,但 MediaElement不玩任何东西
例如,我也尝试过使用 MJPEG
ffmpeg -r 20 -f gdigrab -i desktop -f mjpeg -vcodec mjpeg udp://127.0.0.1:5555
一切正常。
RTSP 流也适用,例如来自 OBS 工作室,在这种情况下,编解码器定义为 h264
原来问题只能出在发送端?是否可以为此目的仅使用 UDP 协议(protocol)?也许我错过了一些 FFmpeg 设置?
 private async void MediaPlayer_Loaded(object sender, RoutedEventArgs e)
{
MediaPlayer.Loaded -= MediaPlayer_Loaded;

FFmpegInteropLogging.SetDefaultLogProvider();
FFmpegInteropConfig options = new FFmpegInteropConfig();
options.PassthroughVideoH264 = true;
options.SkipErrors = 1000;
options.PassthroughVideoHEVC = true;
options.PassthroughVideoH264Hi10P = true;
decoder = awaitFFmpegInteropMSS.CreateFromUriAsync("udp://127.0.0.1:5555",options);

var mediaStreamSource = decoder.GetMediaStreamSource();
mediaStreamSource.BufferTime = TimeSpan.FromSeconds(0);
Debug.WriteLine(decoder.VideoStream.CodecName);

MediaPlayer.MediaFailed += MediaPlayer_MediaFailed;
MediaPlayer.SetMediaStreamSource(mediaStreamSource);
MediaPlayer.Play();
}

最佳答案

设置属性 VideoDecoderMode = VideoDecoderMode.ForceFFmpegSoftwareDecoder 解决了这个问题。

关于c# - 媒体元素显示 H264 比特流 [UWP],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69707441/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com