我在iOS和Android上使用Xamarin libVLCSharp播放器已经有一段时间了,它工作得很好。我已经添加了转码功能,但出于某种原因,我的libVLCSharp代码可以很好地在Android上进行转码(更改编解码器、比特率、fps),但在iOS (iPhone 12 pro,iOS 14.4.2)上相同的转码媒体选项与输入视频文件相比,在输出视频文件中不会产生任何变化。我已经附上了样本视频文件,我试图转码。
以下是我的C#代码(其中包含可以在安卓系统上运行的转码媒体选项,但不能在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
发布于 2021-04-26 09:41:16
尝试使用
$":sout=#transcode{venc={module=avcodec{codec=h264_videotoolbox}, vcodec=h264},venc={module=vpx{quality-mode=2},vcodec=VP80},samplerate=44100,soverlay}:file{dst={destination},mux=ts}"可以随意删除不必要的选项,但从我的发现来看,这个字符串应该是有效的。
https://stackoverflow.com/questions/67199654
复制相似问题