问题描述
我在 iOS 和 Android 上使用 Xamarin libVLCSharp 播放器有一段时间了,它运行良好。我添加了转码功能,但出于某种原因,我的 libVLCSharp 代码可以在 Android 上正常转码(更改编解码器、比特率、fps),但 iOS(iPhone 12 专业版、iOS 14.4.2)上的相同转码媒体选项不会产生与输入视频文件相比,输出视频文件的变化。我附上了我尝试转码的示例视频文件。
这是我的 C# 代码(其中包含适用于 Android 而非 iOS 的转码媒体选项):
Core.Initialize();
_vlc = new LibVLC();
_player = new LibVLCSharp.Shared.MediaPlayer(_vlc);
_media = new Media(_vlc,_source,FromType.FromPath);
_media.AddOption ($":sout=#transcode{{vcodec=h264,vb=700000,acodec=aac,ab=96,channels=2,samplerate=44100,scodec=none}}:std{{access=file,mux=ts,dst={destination}}}");
var result = _player.Play(_media);
有关为什么此转码命令与原始文件相比,输出媒体文件没有产生任何变化的任何帮助或指示将不胜感激!
iOS 日志文件 https://drive.google.com/file/d/1C0UGzE7hqCJYozTvubyK1BKWcZvG18VY/view
我用来测试转码的示例文件: https://drive.google.com/file/d/1MvJKJnu2ii6XMANuWRkHLqmu78e9x03q/view
解决方法
试试
allOID[0][0]
随意删除不必要的选项,但根据我的发现,这个确切的字符串应该可以工作。