我想让输出文件与源文件具有相同的名称(例如来自 list.txt
的第一个文件名),我该怎么做?
这是我的代码,它将文件夹中的所有 .avi 转换为单个文件并将其重命名为 output.avi
.
而不是 output.avi
我希望文件名与源文件夹中的第一个文件名或 list.txt
中的第一个文件名相同.
for %%f in (*.avi) do (
echo file %%f >> list.txt
)
ffmpeg -f concat -safe 0 -i list.txt -c copy output.avi
del list.txt
我还想知道一件事,是否可以在不重新编码的情况下将视频水平翻转或镜像?
最佳答案
我不认为 ffmpeg 支持“反向引用”输入文件名。我建议在 bash 中或通过其他脚本编写方式来处理它。例如。您可以使用 list.txt
的第一行作为这样的输出文件名(未经测试):
ffmpeg -f concat -i list.txt -c copy output/$(head -1 list.txt)
在本例中,如果第一行是
foo.avi
,输出将保存在 output/foo.avi
.is it possible to flip video horizontal or mirror it without re-encoding
显然你可以 set rotation metadata无需重新编码以提示视频播放器以给定的旋转播放。也许有用于镜像或翻转的元数据标志,但我找不到。
如果这对您不起作用,我认为没有内置解决方案可以在不重新编码的情况下执行此操作。
关于batch-file - ffmpeg 来自多个源的输出文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56236641/