我大约有8000个音频文件(总计约6 GB),大多数为Running with gitlab-runner 13.1.0 (6214287e)
on docker-auto-scale fa6cab46
Preparing the "docker+machine" executor
00:40
Using Docker executor with image node:latest ...
Pulling docker image node:latest ...
Using docker image sha256:37ad18cd8bd1f0b80ea0ee380a7addda75f51e0b30cf1a03934d20ea16a905d9 for node:latest ...
Preparing environment
00:04
Running on runner-fa6cab46-project-19785321-concurrent-0 via runner-fa6cab46-srm-1594037028-15e9cfed...
Getting source from Git repository
00:01
$ eval "$CI_PRE_CLONE_SCRIPT"
Fetching changes with git depth set to 50...
Initialized empty Git repository in /builds/aloisdegouvello/posxtkarto/.git/
Created fresh repository.
Checking out fc5855e5 as master...
Skipping Git submodules setup
Executing "step_script" stage of the job script
00:01
$ npm ci
npm ERR! cipm can only install packages with an existing package-lock.json or npm-shrinkwrap.json with lockfileVersion >= 1. Run an install with npm@5 or later to generate it, then try again.
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2020-07-06T12_05_18_266Z-debug.log
ERROR: Job failed: exit code 1
或m4a
格式。有没有一种方法可以将这些音频文件转换为视频,而文件名在视频中显示为静态海报图像。
我可以在ffmpeg中找到drawtext filter,这可能会有所帮助。但是不知道如何在一个命令中将其写出,因此我只传入音频文件的名称(mp3
/ mp3
),然后输出包含音频文件名称的视频作为输出显示屏( m4a
)。
到目前为止,我已经能够通过使用with 256 by 144 pixel resolution
转换命令来首先创建静态图像,然后使用ImageMagick
进行合并。
由于有很多文件,我希望使用ffmpeg / python / javascript以编程方式完成。 我想这样做将我的录音存档在Google相册中。 Google照片可以无限存储高质量的视频。
答案 0 :(得分:1)
您可以通过使用ImageMagick创建标签图像并将其通过管道传输到ffmpeg来获得结果,然后再读取音频文件以组合输出。我用Windows语法编写了一个命令...
set FNAME="My Audio.mp3"
convert -pointsize 24 label:%FNAME% -gravity center -extent 720x480 png:- ^
| ffmpeg -y -f image2pipe -i - -i %FNAME% ^
-filter_complex "loop=-1:1:0" -shortest out_%FNAME%.mp4
将其转换为* nix语法应该几乎与将连续行插入符号“ ^”更改为反斜杠“ \”以及更改其设置和读取变量的方式一样简单。
该命令以设置音频文件名的变量开始。然后,它运行ImageMagick的“转换”命令来创建一个标签,该标签的文件名以720x480画布为中心。输出强制为PNG格式,并通过管道输入ffmpeg作为视频输入。
读入音频文件后,ffmpeg使用“ filter_complex”将视频图像循环播放,并使用“ -shortest”将其限制为音频长度。
结果是一个MP4视频,其中您的输入为音频,文件名在视频帧中央的白色背景上为黑色。使用其他ImageMagick和/或ffmpeg选项来满足您自己的需求。
要在充满图像的目录上运行该命令,请将命令放入“ for”循环中,以便它遍历所有图像并将变量更改为目录中的每个下一个文件名。
如果您使用的是ImageMagick v7,请使用“ magick”而不是“ convert”。
答案 1 :(得分:0)
只需尝试执行以下代码:
ffmpeg -i 1.mp3 -i cover.jpg -f mp4 out.mp4