首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FFmpeg:批量将文件夹中的所有音频(mp3)转换为带有相册艺术品的视频(mp4)

FFmpeg:批量将文件夹中的所有音频(mp3)转换为带有相册艺术品的视频(mp4)
EN

Stack Overflow用户
提问于 2020-01-24 19:04:06
回答 2查看 4.5K关注 0票数 2

我期待批量转换所有音频(mp3)在文件夹到视频(mp4)与相册艺术作品。这是为了上传音频到youtube。我几乎有一个工作代码,但我想自动化整个事情。

,这是我正在使用的.bat文件中的代码。

(资料来源:FFMpeg Batch Image + Multiple Audio to video)

代码语言:javascript
复制
echo off
for %%a in ("*.mp3") do "C:\ffmpeg\bin\ffmpeg" -loop 1 -i  "C:\ffmpeg\bin\input.jpg.jpg" -i "%%a" -c:v libx264 -preset veryslow -tune stillimage -crf 18 -pix_fmt yuv420p -c:a aac -shortest -strict experimental -b:a 192k -shortest "C:\mp4\%%~na.mp4"
pause

  • "C:\ffmpeg\bin\ffmpeg“文件夹codec
  • "C:\ffmpeg\bin\input.jpg”path
  • "C:\mp4\%%~na.mp4“输出文件夹
  • -vf scale=854:480您可以为youtube视频指定16:9分辨率的视频
  • -c:a aac -shortest使用aac编解码器,通过指定-shortest的视频长度将匹配音频长度

这是伟大的工作,除了我必须手动放置的专辑艺术每次。我希望ffmpeg自动从每个音频文件中提取相册艺术,然后将其批量转换为视频。

这是从.mp3文件中提取相册艺术的代码

代码语言:javascript
复制
ffmpeg -i input.mp3 -an -vcodec copy cover.jpg

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-20 10:18:11

我已经想明白了。感谢@L. Scott Johnson的帮助。

这是密码

代码语言:javascript
复制
echo off
for %%a in ("*.mp3") do (
  "C:\ffmpeg\bin\ffmpeg.exe" -i "%%a" -an -y -vcodec copy "E:\songgs\%%~na.jpg"
  "C:\ffmpeg\bin\ffmpeg.exe" -loop 1 -i  "E:\songs\%%~na.jpg" -i "%%a" -y -c:v libx264 -preset veryslow -tune stillimage -crf 18 -pix_fmt yuv420p -c:a aac -shortest -strict experimental -b:a 192k -shortest "E:\songs\%%~na.mp4" )
pause

这是代码的基本版本。

您可以从代码中编辑许多内容。

例如,可以使用此代码为同步歌词添加字幕。

-vf "subtitles=%%~na.srt"

用此代码调整封面大小

-vf "scale=1500:1500"

如果您想将它们放在一起,只需添加逗号(,),如下所示:

-vf "pad=ceil(iw/2)*2:ceil(ih/2)*2,subtitles=%%~na.srt"

您还可以将编码器更改为Nvidia NVENC以获得更快的编码速度.

还有更多..。你知道这个主意。

再次感谢@L. Scott Johnson帮助我编写这段代码。随便问什么问题,我都会尽力帮忙的。我只是在学这个,就像我的用户名说的,我是个菜鸟:)

票数 2
EN

Stack Overflow用户

发布于 2020-01-24 19:44:56

只需将提取命令移动到循环中即可。类似(未经测试)的情况如下:

代码语言:javascript
复制
echo off
for %%a in ("*.mp3") do (
  ffmpeg -i "%%a" -an -vcodec copy "C:\mp4\%%~na.jpg"
  "C:\ffmpeg\bin\ffmpeg" -loop 1 -i  "C:\mp4\%%~na.jpg" -i "%%a" -c:v libx264 -preset veryslow -tune stillimage -crf 18 -pix_fmt yuv420p -c:a aac -shortest -strict experimental -b:a 192k -shortest "C:\mp4\%%~na.mp4" )
pause
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59902282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档