我有一个视频文件,我想获取其中的视频帧数。我可以ffmpeg
用来获取视频的长度和 FPS。但是,对于总帧数,我看不到任何明显的东西。
从理论上讲,应该能够将长度(以秒为单位)乘以 FPS 以获得帧数,但在这种情况下,长度(34.43 秒)和帧速率(29.97 fps)给出了一个非整数,这让我认为我做错了什么。
我需要能够以完全自动化和非图形方式在命令行上执行此操作。我还需要这个非常准确,而不是估计(如果视频文件甚至可能)
我尝试tcprobe
在一些文件上使用。对于某些 AVI 文件,它可以工作,但对于某些 VOB 文件,tcprobe 输出没有帧数。我得到这个输出:
[tcprobe] MPEG program stream (PS)
[tcprobe] summary for myfile.vob, (*) = not default, 0 = not detected
import frame size: -g 720x480 [720x576] (*)
aspect ratio: 4:3 (*)
frame rate: -f 29.970 [25.000] frc=4 (*)
PTS=2199.3972, frame_time=33ms bitrate=7000 kbps
audio track: -a 0 [0] -e 48000,16,5 [48000,16,2] -n 0x2000 [0x2000] (*)
PTS=2199.2763, bitrate=192 kbps
-D 3 --av_fine_ms 20 (frames & ms) [0] …
Run Code Online (Sandbox Code Playgroud) 对于 5 张图像,我必须在 ffmpeg 中创建 60 秒的视频,每张图像必须显示 15 秒。15 秒后,第一个图像必须淡出,第二个图像必须淡入,在第二个图像必须淡出之后,第三个图像必须淡入......等等。请指导我如何使用 ffmpeg 命令实现此目的。
假设我在两个(或更多)文件中编码了相同的视频材料。我想在它们上运行一些实用程序,以明确指出哪个文件的质量“最好”。“Groundly”是指我想得到一份报告,将不同方面(例如视频分辨率、视频比特率、音频采样率、音频比特率等)一一比较,然后得到一个综合得分其中。
这与功能有关,但要使该实用程序真正可用,它应该是开源的和命令行的。
我一直在尝试使用 ffmpeg 在 2 个视频剪辑之间实现淡入淡出过渡,但到目前为止都失败了。我是 ffmpeg 的新手,主要依赖于调整我可以在文档和在线现有示例中找到的内容。从我到目前为止所读到的内容来看,使用混合或叠加过滤器应该有助于实现我所追求的目标,但我无法弄清楚命令行细节以使其正常工作。
的褪色和CONCAT过滤器是伟大的淡出视频1,淡入到视频2和CONCAT 2到1个夹子型的转变,但我会在得到一个命令,从过渡视频1视频2没有任何感激的帮助中间会变黑。我在任何地方都找不到针对此问题的任何示例,也许我正在寻找错误的关键字......?
更具体地说,我的视频是 mp4(h264 视频,没有声音,以防万一),每个视频长 5 秒,我从大约 . 视频 1 的 4.5 秒到视频 2 的 0.5 秒。
与本教程使用 MLT 和帧所做的类似(有关淡入淡出示例,请参阅 2:25),但我正在寻找一种方法,仅在 ffmpeg 中执行此操作,而无需调用任何其他程序。 http://www.youtube.com/watch?v=3PRZ9L_KLdI
非常感谢任何指针或命令行来获得这样的淡入淡出,非常感谢!
我厌倦了必须在我安装的每个媒体应用程序上调整音频。
是否有一个应用程序可以位于任何媒体应用程序和我的声卡之间,以便我可以一劳永逸地设置音频电平和均衡器设置?
如何使用 FFMPEG 从一系列 1000 个 PNG 图像创建未压缩的 AVI?
我使用此命令将input.avi
文件转换为一系列 PNG 帧:
ffmpeg -y -i input.avi -an -vcodec png -s 1024x768 pic%d.png`
Run Code Online (Sandbox Code Playgroud)
现在我需要知道如何从所有这些 PNG 帧制作未压缩的 AVI 视频。我试过这个:
ffmpeg -i pic%d.png -y -f avi -b 1150 -s 1024x768 -r 29.97 -g 12 -qmin 3 -qmax 13 -ab 224 -ar 44100 -ac 2 test.avi
Run Code Online (Sandbox Code Playgroud)
但与原始 AVI 相比,生成的视频质量下降了很多。
我有一个高质量的 MKV 文件,它有几个字幕选项。我想在列表中添加一个额外的字幕文件。我正在使用 OSX。
网上的一些搜索让我使用了视频转换器,基本上将电影重新编码为一个新文件。这对我来说似乎太过分了。另外,我可能会丢失以前的字幕,并在此过程中丢失一些图像质量。
我喜欢保留视频,因为
对于很多有 Flash 视频的网站(包括 Youtube),我可以在 中找到 flv 文件/tmp
,通常命名为FlashXX...
. 但是有些站点设法阻止此文件出现,例如http://blip.tv/file/3627639。这可能根本没有假脱机到磁盘,但这会令人惊讶,因为可以缓冲整个长达一小时的视频,而我的 RAM 不会受到明显影响。
在 Firefox 中,我可以在其缓存目录中找到 flv。但我很好奇如何在 Chrome 中做到这一点。我尝试查看 ~/.cache/google-chrome/ 下,但没有找到任何看起来正确的东西。例如:
$ ls -lt .cache/google-chrome/Cache/ | head
total 261492
-rw------- 1 yang yang 16621568 2010-12-05 03:41 data_1
-rw------- 1 yang yang 966656 2010-12-05 03:40 data_0
-rw------- 1 yang yang 23076864 2010-12-05 03:40 data_2
-rw------- 1 yang yang 262512 2010-12-05 03:40 index
-rw------- 1 yang yang 108412 2010-12-05 03:35 f_005603
-rw------- …
Run Code Online (Sandbox Code Playgroud) 我需要修剪一系列不同长度的 FLV 录音的前 1 或 2 秒。我找到了很多资源来从视频中提取指定的持续时间(例如 30 秒剪辑),但没有找到继续到视频结尾的资源。
这两种尝试都只是产生了视频的复制版本,没有所需的修剪:
ffmpeg -ss 2 -vcodec copy -acodec copy -i input.flv output.flv
ffmpeg -ss 2 -t 120 -vcodec copy -acodec copy -i input.flv output.flv
Run Code Online (Sandbox Code Playgroud)
关于第二个的想法是:也许如果我指定了超出可能的长度,它就会走到最后。没有骰子。
我知道这不是编解码器的问题,也不是使用秒而不是时间码的问题,因为以下内容很有用:
ffmpeg -ss 2 -t 5 -vcodec copy -acodec copy -i input.flv output.flv
Run Code Online (Sandbox Code Playgroud)
还有其他想法吗?我愿意使用其他(基于 Windows 的)命令行工具,但是我非常喜欢 ffmpeg,因为我已经使用它来创建缩略图并且熟悉它。
如果有帮助,我的视频将全部少于 2 分钟。
更新:
我已经改用 Mencoder ( http://www.mplayerhq.hu/ ) 因为看起来 ffmpeg 如果没有一些额外的技巧就无法实现这一点。
完成我打算做的事的 Mencoder 语法是:
mencoder.exe -ss 2 -oac copy -ovc copy input.flv -o output.flv
Run Code Online (Sandbox Code Playgroud) Flash 视频的坏处是它需要第三方插件来播放内容。好消息是我可以选择要播放的内容;使用 Firefox 和 Chrome 中的点击播放功能。
但现在 HTML5 视频越来越流行,我看到很多广告再次出现。它们不仅会分散注意力,还会占用我计算机上的资源并使风扇全速旋转。
有没有办法默认禁用 HTML5 音频/视频内容,并仅选择性地启用它?