【问题标题】:Ffmpeg 1 image and 1 Audio from separate directories into mp4 random selectionffmpeg 1个图像和1个音频从不同的目录到mp4随机选择
【发布时间】:2020-11-16 08:01:18
【问题描述】:

我有一个图像文件夹和一个音频文件夹,感谢@Ljm Dullaart 的帮助,此脚本从图像目录中获取图像,将其与音频目录中的音频合并并输出 mp4 但我想做它,所以它需要一个随机图像和随机音频并将它们合并在一起,而不是无限地这样做,消耗这对。我不知道如何在linux中实现这一点,我已经能够在windows批处理中做到这一点。

此脚本目前要求音频和图像具有相同的文件名:

for file in "$jpgdir"/*.jpg ; do

base=$(basename "$file")
stripped=${base%.jpg}
aac="$aacdir/$stripped.aac"
jpg="$jpgdir/$stripped.jpg"
mp4="$mp4dir/$stripped.mp4"

ffmpeg -loop 1 -i "$jpg" -i "$aac" -c:v libx264 -preset veryslow -tune stillimage -crf 18 -pix_fmt yuv420p -c:a aac -shortest -b:a 192k -shortest "$mp4"

提前谢谢你:)

【问题讨论】:

  • 请注意,“文件夹”是用户术语。在 Linux 上,也在 Unix/BSD 上,它们是“目录”,与 Windows 主义的“文件夹”不同。

标签: bash shell ubuntu ffmpeg sh


【解决方案1】:

如果我正确理解您的问题,这就是我使用GNU parallel 处理它的方式:

parallel --progress --shuf --halt now,success=20 'ffmpeg -loop 1 -i {1} -i {2} -c:v libx264 -preset veryslow -tune stillimage -crf 18 -pix_fmt yuv420p -c:a aac -shortest -b:a 192k -shortest "{1.}_{2.}.mp4"' ::: "$jpgdir"/*.jpg ::: "$aacdir/*.aac

--shuf 选项将随机输入 aac/jpg 文件,--progress 选项将让您知道作业完成的速度,--halt now,success=20 选项指定您想要的 jpg/aac 组合数量总计(将“20”更改为您需要的任意数量)。

【讨论】:

    猜你喜欢
    • 2013-12-26
    • 2014-07-29
    • 2018-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-28
    • 1970-01-01
    相关资源
    最近更新 更多