标签: ffmpeg

如何让 ffmpeg 将 .mov 转换为 .gif?

我正在尝试将 .mov 转换为 .gif,但没有成功。

这是错误:

ffmpeg -pix_fmt rgb24 -i yesbuddy.mov output.gif
ffmpeg version 0.11.1 Copyright (c) 2000-2012 the FFmpeg developers
  built on Jun 12 2012 17:47:34 with clang 2.1 (tags/Apple/clang-163.7.1)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/0.11.1 --enable-shared --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-libfreetype --cc=/usr/bin/clang --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libxvid --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libass --enable-libvo-aacenc --disable-ffplay
  libavutil      51. 54.100 / 51. 54.100
  libavcodec     54. 23.100 / 54. 23.100
  libavformat    54.  6.100 / 54.  6.100
  libavdevice    54.  0.100 / 54.  0.100
  libavfilter     2. 77.100 / …
Run Code Online (Sandbox Code Playgroud)

gif ffmpeg conversion

132
推荐指数
5
解决办法
8万
查看次数

ffmpeg - 替换视频中的音频

如何使用ffmpeg使用音频文件替换视频文件中的音频?

我想象命令看起来像:

ffmpeg -i v.mp4 -i a.wav -MAGIC video-new.mp4
Run Code Online (Sandbox Code Playgroud)

这与如何用多个音频流替换视频文件中的音频流非常相似但是这个问题处理多个音轨,这使它变得非常复杂,使得不清楚解决方案的哪一部分足以进行简单的音频交换。

audio video ffmpeg

118
推荐指数
1
解决办法
7万
查看次数

如何使用 FFmpeg 从图像创建视频?

是否可以ffmpeg从一组序列创建视频,其中数字不是从零开始?

例如,我有一些图像 [test_100.jpg, test_101.jpg, test_102.jpg, ..., test_200.jpg],我想将它们转换为视频。我尝试了以下命令,但没有用(似乎数字应该从零开始):

ffmpeg -i test_%d.jpg -vcodec mpeg4 test.avi

有什么建议吗?

linux ffmpeg

111
推荐指数
7
解决办法
26万
查看次数

如何以秒为单位获取视频时长?

如何以秒为单位获得视频时长?

我试过的:

ffmpeg -i file.flv 2>&1 | grep "Duration"
  Duration: 00:39:43.08, start: 0.040000, bitrate: 386 kb/s


mediainfo file.flv | grep Duration
Duration : 39mn 43s
Run Code Online (Sandbox Code Playgroud)

这是什么接近,但它不是那么准确,2383 是 39.71 分钟

ffmpeg -i file.flv 2>&1 | grep "Duration"| cut -d ' ' -f 4 | sed s/,// | sed 's@\..*@@g' | awk '{ split($1, A, ":"); split(A[3], B, "."); print 3600*A[1] + 60*A[2] + B[1] }'
2383
Run Code Online (Sandbox Code Playgroud)

time clock ffmpeg awk

107
推荐指数
4
解决办法
20万
查看次数

使用 FFmpeg 的视频有意义的缩略图

FFmpeg 可以从视频中捕获图像,这些图像可以用作缩略图来表示视频。在FFmpeg Wiki中捕获了最常见的方法。

但是,我不想在某些时间间隔内选择随机帧。我发现了一些在 FFmpeg 上使用过滤器来捕捉场景变化的选项:

过滤器thumbnail试图找到视频中最具代表性的帧:

ffmpeg -i input.mp4 -vf  "thumbnail,scale=640:360" -frames:v 1 thumb.png
Run Code Online (Sandbox Code Playgroud)

并且以下命令仅选择与之前相比具有超过 40% 变化的帧(因此可能是场景变化)并生成 5 个 PNG 的序列。

ffmpeg -i input.mp4 -vf  "select=gt(scene\,0.4),scale=640:360" -frames:v 5 thumb%03d.png
Run Code Online (Sandbox Code Playgroud)

以上命令的信息归功于Fabio Sonnati。第二个看起来更好,因为我可以得到 n 个图像并选择最好的。我试过了,它生成了 5 次相同的图像。

更多的调查使我:

ffmpeg -i input.mp4 -vf "select=gt(scene\,0.5)" -frames:v 5 -vsync vfr  out%02d.png
Run Code Online (Sandbox Code Playgroud)

-vsync vfr确保您获得不同的图像。这仍然总是选择视频的第一帧,在大多数情况下,第一帧是署名/标志并且没有意义,所以我添加了一个-ss3 来丢弃视频的前 3 秒。

我的最终命令如下所示:

ffmpeg -ss 3 -i input.mp4 -vf "select=gt(scene\,0.5)" -frames:v 5 -vsync vfr out%02d.jpg
Run Code Online (Sandbox Code Playgroud)

这是我能做的最好的事情。我注意到,由于我只挑选了5个视频,所有视频都来自视频的开头,可能会错过视频后面出现的重要场景。

我想为任何其他更好的选择挑选你的大脑。

thumbnails jpeg ffmpeg thumbnail-generator mjpeg

101
推荐指数
3
解决办法
9万
查看次数

如何使用 FFmpeg 将视频旋转 180°?

我有一个在录制时旋转 180° 的视频。是否可以使用 FFmpeg 纠正此问题?

ffmpeg

93
推荐指数
2
解决办法
10万
查看次数

如何每 N 秒提取一帧视频到图像?

如何将视频文件转换为一系列图像,例如每 N 秒一帧。mplayer 或 ffmpeg 可以做到这一点吗?我已经使用 MPlayer 手动抓取屏幕截图,但我想为长视频自动执行此操作。

video ffmpeg capture mplayer images

89
推荐指数
5
解决办法
19万
查看次数

为什么我会选择 Libav 而不是 FFmpeg,或者有什么区别?

从我所见,在我看来,Libavavconv被认为是继任者ffmpeg——这是正确的吗?

如果这是真的,为什么会这样?libav 究竟在什么方面做得更好,为什么我要选择它而不是 ffmpeg?

我在 VM 中安装 Ubuntu 12.04.1 LTS 时遇到了这个“问题”,当我安装 ffmpeg 时,它出现了一条消息,告诉 mit ffmpeg 已被弃用,我首先想到的是“wtf?”。

如果我使用avconv我是否能够根据 ffmpeg 或多或少地轻松地将我的脚本迁移到 libav?我主要用它来编写元数据和进行音频转换(wav、flac、vorbis、mp3、aac)。

ffmpeg libav

89
推荐指数
3
解决办法
9万
查看次数

使用 ffmpeg/avconv 调整视频大小以适应静态大小的播放器

我有一个 html 5 视频播放器,宽 700 像素,高 400 像素。我试图用avconv使用ffmpeg确保它符合我的播放器来调整(同时保留宽高比)和决策。

输入可以是任何大小的文件,所以我需要调整较大的文件的大小,但用黑条将较小的文件居中。到目前为止,我已经尝试过:-s-aspect,我已经看到pad-vfswitch一起使用,但不明白它是如何工作的,足以获得我需要的东西。

图片

这是我需要什么的粗略想法。我不确定这是否可能。这几乎就像 CSS 的 max-width/max-height。我意识到这可能只是一个混乱的词,但如果有人碰巧明白我在说什么,我会很感激帮助,谢谢。

avconv 命令:

avconv -y -i control.avi -vcodec libx264 -b 2000k -bufsize 20M -acodec aac -strict experimental -ar 44100 -ab 256k bigbuck_out.mp4
Run Code Online (Sandbox Code Playgroud)

ffmpeg video-conversion libav

82
推荐指数
3
解决办法
8万
查看次数

如何使用 FFmpeg 从视频中删除多个片段?

我正在尝试使用 FFmpeg 删除视频的几个部分。

例如,想象一下,如果您在电视上录制了一个节目并想剪掉广告。这对于 GUI 视频编辑器来说很简单;您只需标记要删除的每个剪辑的开头和结尾,然后选择删除。我正在尝试使用 FFmpeg 从命令行执行相同的操作。

我知道如何将单个片段剪切为视频,如下所示:

ffmpeg -i input.avi -ss 00:00:20 -t 00:00:05 -map 0 -codec copy output.avi
Run Code Online (Sandbox Code Playgroud)

这会剪切一个 5 秒的剪辑并将其另存为新的视频文件,但是我如何做相反的事情并在没有指定剪辑的情况下保存整个视频,以及如何指定要删除的多个剪辑?

例如,如果我的视频可以用 ABCDEFG 表示,我想创建一个由 ACDFG 组成的新视频。

mp4 ffmpeg video-editing

80
推荐指数
7
解决办法
6万
查看次数