【问题标题】:Combining an image sequence with audio and make a video将图像序列与音频结合并制作视频
【发布时间】:2017-04-11 06:41:43
【问题描述】:

我正在尝试拍摄视频,提取帧和音频。然后我对帧进行一些压缩,然后我想将图像帧与音频结合以创建视频。

1.基于fps(无损)从视频中创建帧

ffmpeg  -i  big_buck_bunny_480p_surround-fix.avi -q:v 1 ./vidtest/out%d.jpg

这里的问题是图像的质量是94 基于graphicsmagick ,我怎样才能以原始质量提取帧。

2.获取音频

ffmpeg -i big_buck_bunny_480p_surround-fix.avi  -vn -acodec copy  big_buck_bunny_480p_surround-fix.ac3

3.如何将音频与图像序列结合起来

【问题讨论】:

    标签: audio video ffmpeg


    【解决方案1】:

    您似乎已经了解如何从视频中提取音频流,因此我们将跳过该步骤。

    假设您有一个名为video.mp4 的视频文件和一个名为audio.mp3 的音频文件。您想从视频中截取静止图像并以audio.mp3 作为音轨创建幻灯片。

    首先我们将提取静止图像。 fps=1/10 表示每十秒提取一次帧。 -ss 00:00:5 表示我们将在五秒后开始。视频的开头通常是淡入,其中大部分是黑色,因此可能需要跳过它。

    ffmpeg -ss 00:00:5 -i video.mp4 -vf fps=1/10 image%03d.png
    

    接下来,我们将计算生成的图像数量。这将有助于我们在指定幻灯片的帧速率时知道。

    imgcount=$(find . -maxdepth 1 -name "image*" | wc -l)
    
    echo $imgcount
    

    音轨的持续时间也很高兴知道。对于 MP3 和类似格式,尤其是在以可变比特率编码时,持续时间的估计可能令人担忧。为了解决这个问题,可以将音频文件转换为 WAV 文件 f.ex,然后估算持续时间。

    adur=$(ffprobe -v error -select_streams a:0 -show_entries stream=duration \
      -of default=noprint_wrappers=1:nokey=1 audio.mp3)
    
    echo $adur
    

    现在我们将图像重新组合成幻灯片。 $imgcount/$adur 指定静止图像的显示速率,因此持续时间与音频文件的持续时间相当匹配。 -r 25 指定视频的实际帧率。并非所有格式和视频播放器都接受异常帧率。

    ffmpeg -framerate $imgcount/$adur -i image%03d.png -c:v libx264 -r 25 \
      -pix_fmt yuv422p slideshow.mp4
    

    这将混合音频文件和幻灯片文件并修剪到两者中最短的持续时间。如果容器格式支持音频文件的编解码器,则此方法有效,否则必须重新转换音频文件或选择其他容器格式。我发现 Matroska (.mkv) 非常有用。对于.avi.ac3.mp4.mp3 应该没有问题。

    ffmpeg -i slideshow.mp4 -i audio.mp3 -codec copy -shortest slideshow-sound.mp4
    

    【讨论】:

    • 我已经从第一个命令中根据视频的原始帧率提取了帧。如果我选​​择每 10 秒提取一次帧,我将丢失数据(帧)
    • @user2650277:当然。只需调整 fps 的口味,比如 25?
    • ffmpeg -i big_buck_bunny_480p_surround-fix.avi -q:v 1 ./vidtest/out%d.jpg 不做同样的事情
    • 应该,除了它将帧转换为 JPEG。如果您想最大程度地减少损失,PNG 是一个更好的选择。
    • @user2650277 现在解决了吗?还是您还需要其他解决方案?
    猜你喜欢
    • 2015-03-25
    • 2016-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-15
    • 1970-01-01
    相关资源
    最近更新 更多