gpt4 book ai didi

c# - ( C#/VB FFMPEG Wrapper ) 如何解析视频到音频的转换进度?

转载 作者:行者123 更新时间:2023-12-04 23:00:54 28 4
gpt4 key购买 nike

我会尽量具体化。

我搜索了很多以找到一个好的 .net FFMPEG 包装器,最好的是 VB FFmpeg Wrapper

我很不擅长使用 VB.net,问题是我想在 C# 项目中使用这个库,但我无法将我找到的示例程序从 VB.net 正确转换为 C#。

所以,我编辑了我的 C# 应用程序,所以它将输入视频文件路径写入临时 .txt 文件..然后运行“转换器”(用 VB 编写)!

我的“转换器”的代码:

Imports System
Imports System.IO

Public Class Form1
Public WithEvents MediaConverter As New FFLib.Encoder

Private Sub ConOut(ByVal prog As String, ByVal tl As String) Handles MediaConverter.Progress
OperationPrgrss.Value = prog
Application.DoEvents()
End Sub

Private Sub stat(ByVal status) Handles MediaConverter.Status
StatusLbl.Text = status
Application.DoEvents()
End Sub

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Try
Using PathFinder As New StreamReader("_temp.txt")
Dim SrcPath As String
SrcPath = PathFinder.ReadLine()
PathTxtBox.Text = SrcPath
End Using
Catch ex As Exception
MessageBox.Show("The file couldn't be read : " & Environment.NewLine & ex.Message)
End Try
End Sub


Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
MediaGenerator.RunWorkerAsync()
End Sub

Private Sub MediaGenerator_DoWork(sender As Object, e As ComponentModel.DoWorkEventArgs) Handles MediaGenerator.DoWork
MediaConverter.OverWrite = False
MediaConverter.SourceFile = PathTxtBox.Text
MediaConverter.Format = MediaConverter.Format_MP3
MediaConverter.AudioCodec = MediaConverter.AudioCodec_mp3
MediaConverter.Video_Codec = MediaConverter.Vcodec_NONE

MediaConverter.Threads = 0
MediaConverter.OverWrite = True

Dim OutputFldr As String = AppDomain.CurrentDomain.BaseDirectory & "MP3Files\\"
MediaConverter.OutputPath = OutputFldr
MediaConverter.AnalyzeFile()

MediaConverter.Encode()
End Sub
End Class

我想做的是转换视频文件 [有时是 WEBM、FLV、MP4 或 3GP],
上面的代码成功了,但问题是使用时:
MediaConverter.Video_Codec = MediaConverter.Vcodec_NONE

进度条不起作用,它的值仍然是 0 !
&当我使用任何视频编解码器时,它可以完美运行 [进度条],但创建的 MP3 文件将无法与任何媒体播放器或智能手机和电视 .. 等一起使用;

...

所以有什么问题 ?!我该如何解决?
我尝试了很多改变包装库源代码中的一些功能,但正如我之前提到的......我只是一个新手@VB.net:\

最佳答案

获取 FFMpeg 进度的最简单方法是解析其控制台输出。
我编写了免费且易于使用的 FFMpeg 包装器 Video Converter .NET有进度事件:

var conv = new NReco.VideoConverter.FFMpegConverter();
conv.ConvertProgress += (o, args) => {
Console.WriteLine( String.Format("Progress: {0} / {1}\r\n", args.Processed, args.TotalDuration );
};
conv.ConvertMedia(inputFile1, outFile, "flv");

关于c# - ( C#/VB FFMPEG Wrapper ) 如何解析视频到音频的转换进度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14713323/

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