我一直在网上搜索,试图找到一个很好的漫游FFMPeg和它的细微差别。
我现在有个工作装置。这是一种两通编码。如果我使用cmd窗口并使用以下args:
ffmpeg -i c:\temp\175663.lbl.mp4. -an -vcodec mpeg4 -b:v 1300k -s 640x360 -aspect 16:9 -pass 1 -r 29.970 -an -f rawvideo -y NUL && ffmpeg -i c:\temp\175663.lbl.mp4.mps -vcodec mpeg4 -b:v 1300k -s 640x360 -aspect 16:9 mpeg4 2-aspect 29.970 en23 20 en21 48000
我在ffmpeg.exe目录中得到一个日志文件。我认为这是一个有效的好日志。我还得到一个有效的好mp4文件。但是,我不知道日志文件是否实际用于pass2。如果我只在cmd窗口中运行第二次传递(在&&之后的所有内容),那么所有这些都是单独运行的。我得到一个有效的mp4文件。为什么没有错误?这使我怀疑原来的传球根本没有被用于第二次传球。
其次,如何以编程方式删除pass1的日志?有我可以输入的命名约定吗?最终,该应用程序将在同一台/其他计算机上的多个线程上运行。所以我不能从ffmpeg文件夹中删除*.log。是否有方法在文件创建时命名它们?
最后,我似乎无法用上面的论点在C#中开始一个新的过程。如果省略了ffmpeg (因为进程正在启动ffmpeg本身),则会在&&上出错。我不认为它喜欢做两次传球。如果我一次只传递一次,我就不会得到一个日志文件来尝试在第二次传递时使用。
任何信息都会很棒。谢谢你提前给我时间!
发布于 2014-03-30 20:42:29
首先,如果您询问的是ffmpeg的适当cmdline开关,那么对于StackOverflow来说这可能不是一个合适的问题,它属于SuperUser。
第二,是的,日志在第二次传递过程中使用。日志的作用是在每个帧中保持比特率要求,因此如果指定目标比特率(使用-b:v时),可以更好地利用总带宽;另外,如果您使用常量量化器(也称为“恒定质量”),则不会使用它,但是使用常量量化器,您将不需要多次通过编码。
您应该能够将这个cmdline作为两个进程启动,一个接一个,日志文件的创建应该没有区别。如果是,请确保正确设置了进程的当前目录。
https://stackoverflow.com/questions/22720622
复制相似问题