Questions tagged «ffmpeg»

FFmpeg是一个免费软件项目,它产生用于处理多媒体数据的库和程序。FFmpeg的最著名部分是libavcodec,其他几个项目使用的音频/视频编解码器库,libavformat,音频/视频容器多路复用器和demux库以及用于对多媒体文件进行代码转换的ffmpeg命令行程序。

2
如何使用ffmpeg连接同一视频的片段
我有一个长长的视频,其中有不同的场景。我想使用ffmpeg 2.1.4从视频中提取并连接2个场景(这些场景不是从I帧开始的)。 为了争辩,说我要从01:00和02:00起5秒。 我可以做这个: ffmpeg -ss 01:00 -i in.mkv -ss 02:00 -i in.mkv -filter_complex " [0:v]select='lt(t,5)'[v0]; [0:a]aselect='lt(t,5)'[a0]; [v0][a0][1:v][1:a]concat=n=2:v=1:a=1 " -c:a libvorbis -t 10 out.mkv 那给了我我想要的电影,但是选择实际上迫使ffmpeg解码电影的其余部分。那么,我如何告诉它截断第一部电影而不是对其进行解码? 如果可能的话,我宁愿使用ffmpeg复杂过滤器进行此操作。我知道我只能-t先对单独的电影进行重新编码,但是对于我来说,额外的编码步骤非常慢,并且此视频的质量也相当可观。 我似乎找不到能截断蒸汽长度的过滤器。是否存在与-t或-ss参数相对应的过滤器节点?
15 ffmpeg 

1
如何将FFmpeg命令用于反向视频?
我习惯了android中的FFmpeg库用于反向视频。我可以从视频中转储图像,但是如何反转所有图像并制作视频。在我的gradle中,看到此链接从我正在使用到库。库是compile 'com.github.hiteshsondhi88.libffmpeg:FFmpegAndroid:0.2.5'我可以使用某些命令而有些则不能。我使用命令如下 -i /storage/emulated/0/ffvid/frameCount.mp4 -an -qscale 1 /storage/emulated/0/ffimg/revi%06d.jpg 上面的命令用于从视频中转储图像。我不能将命令用作liki $ffmpeg,$sox并且$cat 我已经提到了很多链接,但是在看到下面的一些链接时并没有成功... /unix/214327/how-can-i-reverse-a-video-clip http://jiaxihu.blogspot.in/2012/05/reverse-video-clip-with-ffmpeg.html 因此,请帮助我并提供解决方案。如果有其他图书馆,那就建议我。谢谢提前
15 video  ffmpeg 

7
有没有一种方法可以暂停和恢复FFmpeg编码?
我每天录制几个小时的视频素材,并将其设置在队列中以使用进行编码ffmpeg。我将veryslow预设与配合使用x265,因此一小时的视频可能最多需要20个小时或更长时间来编码。 由于我的计算机白天和黑夜都在工作,我想知道是否ffmpeg可以暂停和恢复编码?我正在使用TerminalOSX。 如果是这样,即使关闭终端并重新启动计算机后,我也可以继续编码吗?我认为,当您再次登录OS X时,将恢复终端会话,至少终端历史是这样。
14 ffmpeg  osx 

2
如何使用ffprobe获取有关mp4 / h.264文件的某些信息
我不过是个谦虚的PHP开发人员,其任务是检索有关100个成千上万个视频文件的一些基本信息。我使用的ffmpeg提取了一些运气video bitrate,video width,video height,duration,并aspect ratio从他们身上,而是用约5%的误差率,这仍然给我留下了文件,我不知道如何处理数量庞大的。视频确实可以播放,但是ffmpeg返回的大量数据让我困惑,如何解析返回的XML以找到我所遇到的所有条件所需的内容。(这些文件是过去15年左右的集合,有些是新编码的,有些是几年前转换的) 无论如何,我发现了以下用于ffprobe获取持续时间的用法,并希望这里的一些了解使用ffmpeg和ffprobe的复杂性的人会很乐于帮助我以比直接更简单的方式找到我需要的其他值疯狂的代码,我发现自己正在尝试通过ffmpeg的全部结果。 ffprobe -i "video.mp4" -show_entries format=duration -v quiet -of csv="p=0" 非常感谢。 澄清: 我应该在下面的cmd上添加一点,我可以“看到”我需要的内容,但是我不明白如何提取我需要的内容,例如,检索VIDEO比特率,并抑制/忽略AUDIO比特率,或确定2使用不同的时长(音频/视频时长?) C:\>ffprobe -v error -show_entries stream=width,height,bit_rate,duration -of default=noprint_wrappers=1 input.mp4 duration=1712.000000 bit_rate=64000 width=320 height=240 duration=1711.946113 bit_rate=359827 duration=1712.000000 bit_rate=N/A duration=1712.000000 bit_rate=N/A
13 ffmpeg 

1
ffmpeg:明确标记h.264为bt.601,而不是未指定?
我想将视频明确标记为bt.601,而不是“未指定”。我知道播放器通常选择bt.601作为宽度小于1280像素的视频的默认设置,但我想明确指出bt.601是视频的正确颜色矩阵。 症结在于,bt601ffmpeg或libx264 没有选择,只有bt709和其他一些选择。 我有一些视频已从HD降级,但仍在bt.709中,但没有正确标记。因此,当我观看视频时,有时必须手动将播放器切换到bt.709。当我用观看时,明确标记为bt.601会与未来的观看者(例如,我自己)交流,它肯定是bt.601,而不是贴错标签的bt.709视频mediainfo。 另一个用例是,如果您将bt.601视频放大到1280或更高而不进行-vf colormatrix色彩矩阵转换(使用),则如果您未指定颜色信息,则播放器会错误地假设bt.709。 FFMpeg的colormatrix视频滤镜确实支持bt601作为输入或输出颜色矩阵,但也不设置标签。(由于设置ffmpeg的颜色选项没有副作用,因此它甚至拒绝使用src和dest进行操作-vf colormatrix=bt601:bt601。) ffmpg in -color_primaries bt709 -color_trc bt709 -colorspace bt709 out 会将输出视频标记为对yuv <-> rgb使用bt.709。标签最终出现在视频比特流本身内部,而不仅仅是容器内部(因为对于mp4和mkv容器来说,这似乎是特定于编解码器的东西,而不是容器的东西)。 例如mediainfo输出: Complete name : out.mkv ... Writing application : Lavf57.14.100 Writing library : Lavf57.14.100 Video ID : 1 Format : AVC ... Writing library : x264 core 148 r2638+4 afcf21c …


1
如何用ffmpeg去隔行?
我有以下VOB文件: → ffmpeg -i input.vob输出: ffmpeg version N-77455-g4707497 Copyright (c) 2000-2015 the FFmpeg developers built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04) configuration: --extra-libs=-ldl --prefix=/opt/ffmpeg --mandir=/usr/share/man --enable-avresample --disable-debug --enable-nonfree --enable-gpl --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --disable-decoder=amrnb --disable-decoder=amrwb --enable-libpulse --enable-libdcadec --enable-libfreetype --enable-libx264 --enable-libx265 --enable-libfdk-aac --enable-libvorbis --enable-libmp3lame --enable-libopus --enable-libvpx --enable-libspeex --enable-libass --enable-avisynth --enable-libsoxr --enable-libxvid --enable-libvo-aacenc --enable-libvidstab …
12 ffmpeg  filter 

2
ffmpeg drawtext过滤器-使用文本创建透明背景
我目前正在使用drawtext过滤器。到目前为止,我仅使用drawtext选项配置成功使用正确的字体并将文本水平居中放置。我如何drawtext在视频上显示文本,如下所示? ffmpeg ffmpeg -i "/media/test/test.mp4" -vf drawtext="fontfile=/usr/share/fonts/truetype/open-sans/OpenSans-Regular.ttf:text='Title of this Video':x=(w-tw)/2:y=(h-th)/2" /media/test_edited.mp4"
11 video  ffmpeg 

1
FFMPEG是否可以随时间改变比例?
好的,因此,使用重叠式滤镜,您可以使用“ t”变量随时间更改视频的x / y位置。例如,overlay=x='if(gte(t,2), -w+(t-2)*20, NAN)':y=0可用于在2秒钟后开始从左上角向右上角滑动覆盖的元素。 我想做的是使用类似的原理缩放元素。我希望能够通过使用表达式(例如scale=w=iw*t,或沿该行显示的内容)随时间更改视频的比例。 这可能吗? 当我通过-filter_complex运行该表达式时,我得到 计算表达式“ iw * t”时出错。 也许out_w:'iw * t'或out_h:'-1'的表达式是自引用的。 我感觉如果我想获得此功能,很有可能需要打补丁FFMpeg,但我想我首先要问一问,看看是否有人知道这种事情! 有谁知道如何完成这样的任务? 谢谢您的帮助!

1
在无损模式下使用h264会带来小的意外结果
我对ffmpeg屏幕捕获功能感到好奇,然后开始在h264中进行简单的实时捕获测试。 ffmpeg -f dshow -i video="screen-capture-recorder" -video_size 1920x1080 -framerate 30 -c:v libx264 -crf 0 -preset ultrafast capture.mkv 根据ffmpeg h264上所说的内容,使用-qp 0或-crf 0选项libx264应该可以在无损模式下工作。 您可以使用-qp 0或-crf 0编码无损输出。建议使用-qp而不是-crf进行无损,因为8位和10位x264使用不同的-crf值进行无损。 在谈论使用较慢的预设尝试尝试保存一些大小的可选重新编码时,实时捕获部分的帮助中也会重复此操作: 注意,由于初始记录是无损的,并且重新编码也是无损的,因此在此过程中不会以任何方式引入质量损失。 基于此,我相信该指南,并假设使用-qp 0可以实现完全无损的工作流程;) 但是我发现它在特定情况下会带来一些损失。 因此,我使用此代码对huffyuv编解码器进行了另一个测试: ffmpeg -f dshow -i video="screen-capture-recorder" -video_size 1920x1080 -framerate 30 -c:v huffyuv capture.mkv 结果: 屏幕1:无损模式下的h264 屏幕2:huffyuv 基于屏幕huffyuv是完美的,一个真正的无损编解码器却h264在这里压缩了一些内容,我无法理解为什么应将其设置为无损模式。 (huffyuv等同于桌面的位图屏幕截图,使用h264可以实现相同的效果) 有人可以帮我弄清楚吗? 编辑:根据需要添加一些ffmpeg转储;) h264运行: …

3
OGV格式可在我的计算机上正常播放,但转码掉落(重复?)帧
我使用ubuntu 12.10上的recordmydesktop进行了一系列截屏。输出是一个ogv文件。当我使用默认的电影播放器​​(图腾)观看ogv文件时,它看起来不错-音频和视频是同步的。当它被我或youtube转码时,音频和视频不同步。好像我在叙述时跳过了一两张幻灯片。 更新资料 我怀疑问题更恰当地描述为在转码期间丢弃重复的帧。在鼠标移动的地方转换视频似乎正常。但是,当我在幻灯片中聊天时,那些重复的帧会丢失。 我看到了,但这不是我的情况(试图从ogv->任何东西开始)/superuser/436187/ffmpeg-convert-video-w-dropped-frames-out-of-sync AVI文件似乎可以正确翻译!我认为这对某人将是一个很大的暗示。我仍然想找出潜在的问题。我正在测试以前的视频到AVI的转换,但这需要一段时间,因为我必须检查每个转换。 例子 这是来自gtk-recordmydesktop的原始OGV文件:http ://dl.dropbox.com/u/64693533/sync_test/sync_test1.ogv 视频以幻灯片的形式播放10秒钟,然后再播放5秒钟的3张幻灯片。每次滑动幻灯片时,我也会同时点击麦克风(10s,15s,20s,25s)。 以下是完成的一些转换(每个显示都是它自己的视频计时问题): http://dl.dropbox.com/u/64693533/sync_test/sync_test1.mp4 该幻灯片显示了第一帧中的第一张幻灯片,但很快就越过了它 这是使用股票ffmpeg完成的 http://dl.dropbox.com/u/64693533/sync_test/sync_test1.ffmpeg-static.mp4 这个非常接近-由于某种原因,它在13岁时决定前进 这是使用几天前使用ffmpeg的静态构建完成的 这是在youtube上-您可以看到它在13秒钟左右提前(从幻灯片1->幻灯片2): 这证明OGV文件可以正常工作: ffmpeg翻译 使用ffmpeg或avconv,我似乎得到了与youtube类似的效果(转换似乎发生得很早,但不一定同时发生)。 这是我使用的命令(带有ffmpeg的最新静态版本)和输出: $〜/ ffmpeg / ffmpeg -i JSP.ogv JSP.mp4 ffmpeg版本N-50025-gb8bb661版权所有(c)2000-2013 FFmpeg开发人员 建于2013年2月17日05:23:03与gcc 4.6(Debian 4.6.3-1) 配置:--prefix = / root / ffmpeg-static / 64bit --extra-cflags ='-I / root / ffmpeg-static / 64bit …

1
如何使用ffmpeg限制文件大小?
我想将长度为60秒的视频编码为目标或最大大小为10 MB。 我知道两种方法。一种在FFMPEG-Wiki中进行了说明,另一种在文档中找到。不幸的是,我没有找到何时使用哪种方法的解释。 建议使用其中任何一种方法吗?如果不是,每种方法的优点/缺点是什么? 1)如ffmpeg-wiki所述,计算并设置比特率以匹配视频的长度 (10 MB * 8192 [将MB转换为千位])/ 60秒=〜1365 kbits / s总比特率1365k-128k(所需音频比特率)= 1237k视频比特率 ffmpeg -y -i input -c:v copy -preset medium -b:v 1237k -pass 1 -c:a copy -b:a 128k -f mp4 /dev/null && \ ffmpeg -i input -c:v libx264 -preset medium -b:v 1237k -pass 2 -c:a libfdk_aac -b:a …
10 ffmpeg 

1
将h.264视频从TS复制到MP4中会更改帧速率和时间
我有大型的MPEG-TS文件,正在使用以下命令将其转换为MP4。如果我在MP4和TS文件中的视频中寻找相同的时间,则MP4会比TS文件落后几帧。随着我寻找视频的深入,这种情况会越来越糟。 c:\>ffmpeg -y -r 30 -i full-ts.ts -c:v copy -r 30 -an full.mp4 ffmpeg version N-69040-gb23a866 Copyright (c) 2000-2015 the FFmpeg developers built on Jan 12 2015 22:02:37 with gcc 4.9.2 (GCC) configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca -- enable-libfreetype --enable-libgme --enable-libgsm …
10 ffmpeg  mp4  h.264 

1
与ffmpeg的“级别调整”亮度改善类似
我正在从一组16位的tiff图片组成一个视频。图片很暗,需要加亮。目前我在申请-vf "mp=eq2=1.0:1.0:0.3:1.0:1.0:1.0:1.0:1.0" 过滤器,以使照片更亮,如说在这里,但他们变得太“褪色”。 我曾经使用图像编辑器中的“级别调整”操作来调整直方图的比例,以使其更亮,但是现在我需要制作视频,而不是单个图像文件。同样,将此类操作应用于图像的首选方法是将其分别应用于每个色带,因为它们的初始亮度属性不同。 我可以用ffmpeg做类似的事情吗?


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.