ffmpeg转换视频格式的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ffmpeg转换视频格式的问题相关的知识,希望对你有一定的参考价值。

下载了ffmpeg并安装好,安装在D:\word\ffmpeg下面了。也设置了环境变量。但是在执行的时候有问题。我在D:\work下有个1.f4v文件,我要将其转换成2.MP4。我执行的命令是 ffmpeg -i D:\work\1.f4v D:\work\2.mp4 执行命令的结果是下图所示,不知道哪里出错了,应该怎么执行呢?

狸涡转换器,文件添加进去后就可以转换,命令转换太麻烦。

在预置方案那里选择格式,设置好保存目录,视频质量选择高等。

然后开始转换,转换出来就是MPEG2格式了。

参考技术A 错误提示说:地址不正确或地址为空,然后我按你的格式进行可以完成啊
好吧,果然work和word 打错了吧 ,你的问题和图片不符.
其实后面的地址可以省略,直接打2.MP4文件名就可以了,默认生成在原始文件夹.

教你你个方法,在文件所在的文件夹里,删除地址栏,输入cmd,回车,直接出来的命令行里输入命令,不需要写地址,只写新旧文件名就可以了,比如 ffmpeg -i old.blv new.mp4本回答被提问者采纳
参考技术B 。。。别那么麻烦啊 下个格式工厂软件 几下就解决 参考技术C 同求。我也是遇到用FFMPEG转换视频格式的问题,楼主你解决了没有?求方法!网上都是格式工厂,格式工厂根本不行!他们都不会用FFMPEG

FFMPEG-将视频转换为图像

【中文标题】FFMPEG-将视频转换为图像【英文标题】:FFMPEG- Convert video to images 【发布时间】:2017-02-26 13:05:40 【问题描述】:

如何使用 ffmpeg 将视频转换为图像?示例我有一个总持续时间为 60 秒的视频。我想要不同持续时间之间的图像,例如 2-6 秒之间,然后是 15-24 秒之间,依此类推。使用 ffmpeg 可以吗?

【问题讨论】:

我将评论与所有答案相关的内容。您可能不想以 png 格式输出。以 jpg 格式输出。如果想要质量好,加-qscale:v 2参数。 【参考方案1】:

关于此的官方 ffmpeg 文档:Create a thumbnail image every X seconds of the video

每秒输出一张图片:

ffmpeg -i input.mp4 -vf fps=1 out%d.png

每分钟输出一张图片:

ffmpeg -i test.mp4 -vf fps=1/60 thumb%04d.png

每 10 分钟输出一张图片:

ffmpeg -i test.mp4 -vf fps=1/600 thumb%04d.png

【讨论】:

谢谢。我们可以指定我们需要图像的持续时间吗?就像我需要一个 60 秒视频的 2-6 秒和 13-17 秒之间的图像,通过一个命令。 可以将输入视频搜索到某个起始位置,但我不确定 ffmpeg 是否有一个可以接受范围的过滤器。也许您需要进行 2 次 ffmpeg 调用(针对 2-6 范围和 13-17 范围)。 fps=1/600 指定每十分钟一张图片。每分钟一张图片使用fps=1/60【参考方案2】:

您可以对一组自定义范围使用选择过滤器:

ffmpeg -i in.mp4 -vf select='between(t,2,6)+between(t,15,24)' -vsync 0 out%d.png

【讨论】:

嗨。如何指定提取图像的帧速率?例如,我想在 2 到 6 之间提取 5 帧/秒。 使用-vf fps=5,select='between(t,2,6)+between(t,15,24)' 感谢您的快速回复!这将在提到的时间(2-6)之间提取图像。如何从 2-6 获取图像? 另外,我可以提一下使用“ss”过滤器设置的多个持续时间吗? ffmpeg -ss 10 -i video.mp4 -to 12 -copyts -vf fps=1 v2f/out%d.png 这将创建 10 秒到 12 秒的图像。我可以在这里设置多个持续时间吗? image2 muxer,用于输出图像序列,默认为CFR。因此,当给定时间戳差异大于 1/fps 的帧时,ffmpeg 将复制帧以保持 CFR。将在选择 t=6 帧和 t=15 帧之间发生vsync 0 防止这种情况发生。【参考方案3】:

另一种方法是使用 python 的 ffmpeg 库,如果您不想将 ffmpeg 添加到您的 pc 环境中,则特别有用。首先在 conda 上安装 ffmpeg:conda install ffmpeg 然后您可以编写如下脚本:

import ffmpeg
input_file_name = 'input_video.mp4'
(ffmpeg
 .input(input_file_name )
 .filter('fps', fps=10, round = 'up')
 .output("%s-%%04d.jpg"%(input_file_name[:-4]), **'qscale:v': 3)
 .run())

【讨论】:

【参考方案4】:

除了 Gyan 回答中的选择过滤器(我使用 eq 而不是 between),我在手册中遇到了另一个过滤器:thumbnail

在给定的序列中选择最具代表性的帧 连续帧。

过滤器接受以下选项:

n:设置要分析的帧批量大小;在一组 n 帧中,过滤器将选择其中一个,然后处理下一批 n 帧直到结束。默认值为 100。

由于过滤器跟踪整个帧序列,因此更大的 n value 会导致更高的内存使用率,所以高 value 不是 推荐。

示例

每 50 帧提取一张图片:

thumbnail=50

使用 ffmpeg 创建缩略图的完整示例:

ffmpeg -i in.avi -vf thumbnail,scale=300:200 -frames:v 1 out.png

【讨论】:

以上是关于ffmpeg转换视频格式的问题的主要内容,如果未能解决你的问题,请参考以下文章

FFmpeg使用 FFmpeg 处理音视频格式转换流程 ( 解复用 | 解码 | 帧处理 | 编码 | 复用 )

ffmpeg转换视频格式的问题

mencoder+ffmpeg视频转换问题

VLC转换视频格式

转换视频格式|压缩视频|使用ffmpeg

ffmpeg 音频视频格式转换