我想检查人眼无法察觉的最低 FPS 是多少。
我创建了一个白色的 jpg 和一个黑色的 JPG。我从 25 fps 开始,这意味着我有 24 jpg 的白色和 1 幅黑色。
比我使用这个命令:
ffmpeg -r 25 -i %d.jpg -vcodec mpeg4 test.avi
Run Code Online (Sandbox Code Playgroud)
这部电影有 3 秒长(我总共有 75 jpg)。我可以很容易地看到黑色图片。
然后我移动到 100 fps,我仍然能够看到它 - 但不是以前的 3 倍(这里我有 300 JPG,其中 3 个是黑色的)。当我移动到 200 fps 时,我看不到黑色 JPG 闪烁(I 600 JPG)。
人类无法感知两帧之间差异的 FPS 是否有任何下限?
我使用的编解码器肯定会显示这些图像……或者有一种压缩方法可以使电影中不显示黑框?如果是这样,我应该使用哪种编解码器?
这是我的场景:
我想在其他视频中添加水印视频,但我希望水印出现时开始。
实际上,我可以显示水印视频并从头开始播放。如果我尝试在特定时间间隔内添加水印,它会在指定的时间段内正确显示,但水印似乎已停止,因为它在播放主视频时开始。
这是我正在使用的命令:
ffmpeg -y -i big_buck_bunny.mp4 -i alpha.mov -filter_complex "[1:v] 淡出:st=30:d=1:alpha=1 [ov]; [0:v][ov] 叠加= 10:main_h-overlay_h-10:enable=between(t\,3\,5) [v]" -map "[v]" -map 0:a -c:v libx264 -c:a copy out.mp4
任何帮助,将不胜感激。谢谢
我想从视频文件中的特定位置提取一帧。该文件位于远程服务器上,我不想下载整个文件。如何以编程方式从 http 流中提取帧?
我可以使用带有 GUI 的 VLC 做我想做的事,但例如我不知道如何在 CLI 中做到这一点。也许是一种使用 VLC cli 发送范围标头的方法?
我正在尝试在无头 ubuntu 机器上执行此操作
我有一个 .mov 文件,我正在尝试将其转换为 mp4 或 avi,但遇到了很多问题。这些是给我的文件,用于将 8 毫米转换为数字。
我对 ffmpeg 和转换很陌生。
debian:/home/HomeMovies# ffmpeg -i Brink\ 8mm\ Reel\ 01.mov -vcodec libx264 -acodec libfaac home1.mp4
ffmpeg version 0.7.16, Copyright (c) 2000-2013 the FFmpeg developers
built on May 2 2014 14:22:53 with gcc 4.4.5
configuration: --enable-libdc1394 --prefix=/usr --extra-cflags='-Wall -g ' --cc='ccache cc' -- enable-shared --enable-libmp3lame --enable-gpl --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree --disable-stripping --enable-avfilter --enable-libdirac --disable-decoder=libdirac --enable-libfreetype --enable-libschroedinger --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg --enable-libvpx --enable-librtmp --extra-libs=-lgcrypt --disable-altivec --disable-armv5te …
Run Code Online (Sandbox Code Playgroud) 我在工作场所使用 PotPlayer。这里允许人们在后台收听音频文件,但我认为如果他们看到我在看视频可能会引起问题。有没有办法暂时禁用 PotPlayer 上的视频,以便在屏幕变黑时继续播放音频?我正在寻找设置中的调整或键盘快捷键。
注意:不要建议我将视频文件中的音频数据提取到独立的磁盘文件中,因为我偶尔会打开视频。
我正在尝试刻录这种格式的字幕:
0:0 Video
0:1 English Audio
0:2 Japanese Audio
0:3 English subtitle (default)
0:4 English subtitle (translation only)
Run Code Online (Sandbox Code Playgroud)
两者都是subrip。我通常使用的是这个批处理文件
ffmpeg -i "foo.mkv" ^
-map 0:0 -map 0:2 ^
-c:a:2 copy ^
-vf subtitles="foo.mkv" ^
"foo_1.mkv"
Run Code Online (Sandbox Code Playgroud)
但只有在有一个字幕流时才有效。当我在双字幕视频上运行它时,它会处理一个新视频但不提供字幕。
我在 Windows 上使用最新版本 2.8.5 ffmpeg,我想在视频开始时添加 5s 介绍 jpeg 帧,并在视频结束时添加 5s jpeg 结束帧。
我在网上找到了很多示例,但似乎所有示例都使用以前版本的 ffmpeg,并且它们都不适用于最新版本。
谁能告诉我如何使用最新版本做到这一点。
如何使用 ffmpeg 在视频(声音)上应用回声效果。请为我提供相同的 ffmpeg 命令建议。
我正在尝试从视频文件中删除一个片段 (00:26:00 - 00:32:30) input.mp4
。
由于没有办法直接使用 ffmpeg(据我所知)来做到这一点,我改为在输出中切割我想要的段,然后将它们连接起来。
经过一番搜索,我发现有两种方法可以做到这一点:
不幸的是,这两种方法对我来说都失败了。
我将解释我在这两种方法中执行的步骤:
1. 使用trim
:
编辑:此方法现在有效;而是跳到第二种方法。
使用的命令:
ffmpeg -i input.mp4 -filter_complex \
"[0:v]trim=duration=00:26:00[a]; \
[0:v]trim=start=00:32:30,setpts=PTS-STARTPTS[b]; \
[a][b]concat[c]" -map [c] out.mp4
Run Code Online (Sandbox Code Playgroud)
命令输出:链接
输出文件不到 1 分钟,只有 6.8 MB,而输入文件有 900 MB。
2. 使用 seek
使用的命令:
# Cut first wanted segment
ffmpeg -ss 00:00:00 -i input.mp4 -t 00:26:00 -c copy -avoid_negative_ts 1 first.mp4
# Cut second wanted segment
ffmpeg -ss 00:32:30 -i input.mp4 -c copy …
Run Code Online (Sandbox Code Playgroud) 我正在尝试制作包含静态图像和覆盖在其上的较小视频的视频。叠加视频的尺寸和位置会动态发送到运行 FFMPEG 的服务器脚本,因此我需要在叠加视频之前对其进行缩放。所以,我使用的数值仅用于测试。原始视频的尺寸为 72:48px。我试过这样的命令:
ffmpeg -i background.jpg -vf "movie=overlay.mp4, scale=128:96 [inner]; [in][inner] overlay=70:70 [out]" -y output.mp4
Run Code Online (Sandbox Code Playgroud)
但是,它会立即生成一个空视频。另一方面,如果我尝试-loop 1
在ffmpeg
命令后立即插入,视频的处理似乎需要无穷无尽的时间并且永远不会完成。
我想要实现的是避免首先创建缩放视频。有可能吗,我做错了什么?