如何将MP3转换为Youtube允许的视频格式?


7

我的网站上有很多MP3文件,我决定将它们上传到Youtube,但不幸的是,Youtube不允许我这样做。它只需要视频格式。

如何将这些MP3转换为视频并将相同的图像集(一个或多个图像)添加到生成的视频格式中。

我需要批量执行此操作,而不是单独执行此操作,我有数百个MP3文件。

它可以是基于Windows或基于Linux的应用程序。

Answers:


8

有一些关于使用ffmpeg编码带有静态图像的音频的信息, 这里 ,以及在Windows中进行批量转换的一些建议, 这里

至于编码,我发现这有效:

ffmpeg -loop 1 -r 1 -i pic.jpg -i audio.mp3 -c:a copy -shortest output.avi


2

Ubuntu和其他Linux系统有一些解决方案 http://ubuntuforums.org/showthread.php?t=1686664 。大多数是shell命令或一些其他快速脚本语言,可以为所有MP3循环,输出视频文件。然后,您可以将视频文件排队以上传到YouTube。在页面上列出的解决方案中:

  1. FFmpeg,然后将文件上传到YouTube
    ffmpeg -loop 1 -i picture.jpg -i music.mp3 -shortest -acodec copy video.mp4 相应地循环播放所有mp3文件,然后上传所有生成的视频文件。

  2. Python,转换为mp4然后将文件上传到YouTube

    #! /usr/bin/env python

    import sys, os

    inputOne = sys.argv[1] inputTwo = sys.argv[2]

    for i in sys.argv[1:]: if '.mp3' in i: output = i.replace('mp3','mp4')

    cmd = 'ffmpeg -loop_input -i "'+inputOne+'" -i "'+inputTwo+'" -shortest -acodec copy "'+output+'"'

    os.system(cmd)

它还使用ffmpeg,并接受音乐和图片作为参数。


loop_input 在ffmpeg中弃用 - 您需要使用 -loop 1 现在。
slhck

我们可以在第一个解决方案(1. FFmpeg)中拥有多个图片吗?
Rasoul

2

你也可以考虑简单的bash oneliner而不是python脚本 -

for i in *.mp3; do ffmpeg -v quiet -i "picture.jpg" -i "$i" -shortest -acodec copy "`sed 's/mp3/mp4/g'<<<$i`"; done

这将使用picture.jpg将当前目录中的所有mp3文件转换为mp4视频。

将flac转换为mp3即可

for i in *.flac; do ffmpeg -v quiet -i "$i" -ab 320k -ac 2 -ar 48000 "`sed 's/flac/mp3/g'<<<$i`"; done

注意 “-v quiet” 这关闭了ffmpeg的大声嘴,并在$ i和$周围加倍报价 sed - 这将确保它不会因包含空格的文件名而失败。

提示:转换为视频需要相当长的时间(至少对我而言)。尝试使用 - 线程4 (或任何其他值,当然。它对单核cpu没有任何意义)

编辑: 我发现“-loop 1”(由其他人建议)创建了循环(多么令人惊讶!),这实际上是无限的。在我的gentoo上,这意味着它会吃掉你所有美味的食物。没有“-loop 1”它可以正常工作,所以我建议你顺其自然。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.