利用ffmpeg把视频文件转换为flv文件

简介:

private static void ConvertAVItoFLV(string pathname)
        {
            //文件名处理
            string tmpFile = System.Environment.CurrentDirectory + "http://www.cnblogs.com/happyday56/admin/file://flv//";
            string filename = Path.GetFileName(pathname);
            tmpFile += filename;
            string outFile = Path.ChangeExtension(tmpFile, ".flv");

            //转化处理,采用异步调用
            //Control.CheckForIllegalCrossThreadCalls = false; //取消线程安全保护模式!注意的是这里不设置为false的话会(流输出事件的处理)产生异常.

            string FFmpegArguments = @" -i " + pathname + " -ab 56 -ar 22050 -b 500 -r 15 -s 640x480 " + outFile;
            Process p = new Process();//建立外部调用线程
            p.StartInfo.FileName = @"F:\ffmpeg\ffmpeg_full_SDK_V3.0\Libs\ffmpeg.exe";//要调用外部程序的相对路径
            p.StartInfo.Arguments = FFmpegArguments;//参数(这里就是MENCODER的参数了)
            p.StartInfo.UseShellExecute = false;//不使用操作系统外壳程序启动线程(一定为FALSE,详细的请看MSDN)
            p.StartInfo.RedirectStandardOutput = true;//把外部程序错误输出写到StandardError流中(这个一定要注意,FFMPEG的所有输出信息,都为错误输出流,用StandardOutput是捕获不到任何消息的...这是我耗费了2个多月得出来的经验...mencoder就是用standardOutput来捕获的)我这里用的是mencoder
            p.StartInfo.CreateNoWindow = true;//不创建进程窗口
            p.OutputDataReceived += new DataReceivedEventHandler(putInfo);//外部程序(这里是mencoder)输出流时候产生的事件,这里是把流的处理过程转移到下面的方法中,详细请查阅MSDN
            p.Start();//启动线程
            
            p.BeginOutputReadLine();//开始异步读取
            Console.WriteLine("阻塞等待进程ffmpeg结束.");
            p.WaitForExit();//阻塞等待进程结束
            p.Close();//关闭进程
            p.Dispose();//释放资源

           Console.WriteLine("avi转化flv成功"+pathname);

 

        } 


本文转自快乐就好博客园博客,原文链接:http://www.cnblogs.com/happyday56/archive/2008/09/20/1294695.html,如需转载请自行联系原作者
相关文章
|
29天前
|
Android开发 开发者
FFmpeg开发笔记(五十七)使用Media3的Transformer加工视频文件
谷歌推出的Transformer,作为Jetpack Media3架构的一部分,助力开发者实现音视频格式转换与编辑。Media3简化了媒体处理流程,提升了定制性和可靠性。Transformer可用于剪辑、添加滤镜等操作,其示例代码可在指定GitHub仓库中找到。要使用Transformer,需在`build.gradle`中添加相关依赖,并按文档编写处理逻辑,最终完成音视频转换任务。具体步骤包括配置剪辑参数、设置空间效果以及监听转换事件等。
45 0
FFmpeg开发笔记(五十七)使用Media3的Transformer加工视频文件
|
6月前
|
网络协议 应用服务中间件 Linux
【音视频 ffmpeg 学习】 RTMP推流 mp4文件
【音视频 ffmpeg 学习】 RTMP推流 mp4文件
|
6月前
|
Linux C语言
ffmpeg编程查看视频文件信息
ffmpeg编程查看视频文件信息
109 0
|
网络协议 API 开发者
FFmpeg打开输入文件
本文介绍如何使用 FFmpeg 的 API 函数 avformat_open_input,avformat_find_stream_info 来打开跟获取一个输入文件的信息 (AVFormatContext )。
196 0
|
编解码 C#
使用ffmpeg将裸码文件转成wav文件
使用ffmpeg将裸码文件转成wav文件
使用ffmpeg将裸码文件转成wav文件
|
容器
FFmpeg读取文件内容AVPacket
FFmpeg读取文件内容AVPacket
227 0
|
编解码 数据处理 vr&ar
|
Windows
WINDOWS编译ffmpeg:LINK : fatal error LNK1104: 无法打开文件“LIBCMT.lib”
WINDOWS编译ffmpeg:LINK : fatal error LNK1104: 无法打开文件“LIBCMT.lib”
446 0
编译ffmpeg:libavdevice/xcbgrab.c:28:10: fatal error: xcb/xfixes.h: 没有那个文件或目录
编译ffmpeg:libavdevice/xcbgrab.c:28:10: fatal error: xcb/xfixes.h: 没有那个文件或目录
78 0
使用ffmpeg合并两个视频文件
使用ffmpeg合并两个视频文件
250 0
下一篇
无影云桌面