是否有一种准确的方法来获取原始视频并从中提取仅包含奇数帧或偶数帧(由选择)的新视频?
例如:
我有 400 帧(0-399)的“blah.yuv”。我想创建包含帧 1-399(1,3,5,7...399)的“blahOdd.yuv”和包含帧 0-398(0,2,4,6...398)的“blahEven” )。
任何想法如何只使用 FFmpeg 来做到这一点?
我尝试使用 ffmpeg 将 m4a 文件转换为 mp3,使用以下最简单的命令:
ffmpeg -i in.m4a out.mp3
Run Code Online (Sandbox Code Playgroud)
转换后,持续时间似乎很奇怪。原来的 m4a 是 4:06。但是对于新的 mp3,OS X Finder 和 Google Play 报告 09:24,而 iTunes 仍然报告正确的 4:06。
我想我之前也遇到过几次这个问题。为什么是这样?任何修复?
以下是 的控制台输出ffmpeg,以防万一它会有所帮助。
$ffmpeg -i in.m4a out.mp3
ffmpeg version 1.2.1 Copyright (c) 2000-2013 the FFmpeg developers
built on Jun 12 2013 13:46:11 with Apple clang version 4.1 (tags/Apple/clang-421.11.66) (based on LLVM 3.1svn)
configuration: --prefix=/opt/local --enable-swscale --enable-avfilter --enable-libmp3lame --enable-libvorbis --enable-libopus --enable-libtheora --enable-libschroedinger --enable-libopenjpeg --enable-libmodplug --enable-libvpx --enable-libspeex --enable-libass --enable-libbluray --enable-gnutls --enable-libfreetype --mandir=/opt/local/share/man --enable-shared --enable-pthreads --cc=/usr/bin/clang …Run Code Online (Sandbox Code Playgroud) 不是使用-ss和-to寻找看起来不太准确的参数,我可以根据给定的帧数剪切视频吗?例如;
ffmpeg -i video.webm -startingframe 80 -endingframe 560 output.webm
Run Code Online (Sandbox Code Playgroud)
[包括第 80 帧和第 560 帧。因此,总的来说它使 (560 - 80 +1) 帧]
在回答和搜索之后,我尝试了一些命令。但到目前为止,我找不到可接受的方式。
如果有人想在第 250 帧和第 750 帧之间剪切视频流,这就是要走的路。它将给出 501 帧作为输出:
注意: movie.mp4 为 25 fps,音频采样率为 48k
ffmpeg -i movie.mp4 -an -vf "select=between(n\,250\,750),setpts=PTS-STARTPTS" v_stream.webm
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,输出正好是 20 秒。
对音频使用相同的方法:
ffmpeg -i movie.mp4 -vn -af "aselect=between(n\,480\,1440),setpts=PTS-STARTPTS" a_stream.webm
Run Code Online (Sandbox Code Playgroud)
出乎意料的是,这个精度很差。它应该给了我 960001 (960k+1) 个等于 20 秒音频的样本。但是,输出的长度为 20.505 秒,并且有 984240 个样本。此外,如果我增加持续时间,错误也会增加。
然后我尝试使用 -ss -to 参数来切割音频流:
ffmpeg -i movie.mp4 -vn -ss 10.000 -to 30.000 a_stream.webm
Run Code Online (Sandbox Code Playgroud)
旧的经典方式效果更好。输出长度为 20.003 …
目前正在尝试将我的 mkv 库转换为 mp4(Iphone 6 plus)
我已经设法正确地将 mkv 转换为 mp4,但我缺少字幕部分 (SRT)
这是我的代码:
dir/b/s *.mkv >mkvlist.txt ///////// this gets a list of all the mkv files on the directory
for /F "delims=;" %%F in (mkvlist.txt) do ffmpeg.exe -i "%%F" -format mp4 -vcodec copy -acodec aac -strict -2 -sn "%%~dF%%~pF%%~nF.mp4" ///////////// this makes the conversion
del mkvlist.txt ////// this deletes the txt file
Run Code Online (Sandbox Code Playgroud)
我想在脚本中包含字幕,但我无法将正确的字幕名称插入脚本(因为这是一个多转换批次)。
我有一个 IP 安全摄像头 (192.168.0.8),它能够通过网络广播 rtsp 内容。
我可以使用计算机中的下一个 ffmpeg 命令保存该(RAW)内容而无需更改:
ffmpeg -i "rtsp://192.168.0.8/stream=0.sdp" -acodec copy -vcodec copy test-raw.mp4
Run Code Online (Sandbox Code Playgroud)
我还可以即时调整它的大小:
ffmpeg -i "rtsp://192.168.0.8/stream=0.sdp" -vf "scale=640:-1" test640.mp4
Run Code Online (Sandbox Code Playgroud)
但是如何仅保存仅包含运动检测部分的视频?
我试图使用 ffmpeg 的场景更改过滤器解决它,但没有运气。
我的目标 - 拥有通用的视频监控解决方案,该解决方案可检测何时有人靠近摄像机并将其保存到视频文件中。我知道可能无法从流中即时执行此操作,因此我可以先保存大文件,然后使用另一个 ffmpeg 命令处理它并生成仅包含运动检测部分的新视频文件。如果您能给我建议我应该进一步研究什么,我将非常感激。
我的相机流是无声传输的。因此,我可以从原始视频生成一组图像,然后选择合适的图像,然后从图像中保存新视频。
有没有办法用ffmpeg插入帧?而不仅仅是复制它们。我试过slowmovideo,男孩很慢。我在拉斯维加斯使用过 Twixtor 并且讨厌它。我给了 megui,但无法正确设置。
那么有没有办法用ffmpeg进行插值?
有没有一种相对简单的方法来加速视频(mp4,带有 aac 编码的音频),比如“x1.25”或“x1.3”,同时保持原始音视频同步,但也保留原始音高声音的 ?
我已经阅读了一些关于将音轨提取到单独的文件中的讨论,然后用于rubberband将音调降低所需的值,然后使用 ffmpeg 加速合并音频视频轨道,这将音频的音调再次提高回原始. 然而,这似乎有点命中注定,因为rubberband似乎使用八度音程数作为参数来提高或降低音高,并且这可能并不总是与视频完美匹配,因为音符/八度音程具有特定的比率。而且,这很麻烦。
那么,有没有单独使用 ffmpeg 的更简单的方法?
ffmpeg 文档中提到了以下内容。
ffmpeg 调用 libavformat 库(包含多路分配器)来读取输入文件并从中获取包含编码数据的数据包……然后将编码数据包传递给解码器……解码器生成未压缩的帧(原始视频/PCM 音频/…… ) 可以通过过滤进一步处理...
这是否意味着您始终可以从所有压缩格式/编解码器(如 h.264)中提取原始大尺寸视频?
我需要以一种可以在 windows xp 上使用 windows media player 播放的格式对短视频进行编码,而无需安装任何额外的编解码器。对于重新编码过程,我使用的是 ffmpeg。
我已经尝试过msmpeg4v2编解码器,但质量很差(与您看到大“块”的原始视频相比),所以我正在寻找其他开箱即用的编解码器,并且至少具有“好的”质量。
由于评论表明它可能不是编解码器而是比特率问题,这是我使用的命令:
ffmpeg -i x.flv -vcodec msmpeg4v2 -acodec adpcm_ima_wav x.avi
Run Code Online (Sandbox Code Playgroud)
输出:
Input #0, flv, from 'x.flv':
Metadata:
moovPosition : 39337765
avcprofile : 100
avclevel : 30
aacaot : 2
videoframerate : 25
audiochannels : 2
Duration: 00:06:19.52, start: 0.000000, bitrate: 836 kb/s
Stream #0:0: Video: h264 (High), yuv420p, 702x396 [SAR 2596:3679 DAR 354:283], 25 tbr, 1k tbn, 50 tbc
Stream #0:1: Audio: aac, 48000 Hz, stereo, s16
w:702 h:396 …Run Code Online (Sandbox Code Playgroud) 我正在尝试为 1280x720 25fps 视频找到最合适的无损视频格式。视频有4分钟。声音将是 320 kbps mp3,这没什么大不了的。理想条件:
这甚至可能吗?已经挣扎了三天,没有任何令人满意的结果,甚至获得了 12 GB 的文件(似乎很多 - 3 GB/分钟)。
ffmpeg ×10
video ×5
audio ×2
codec ×1
compression ×1
fps ×1
framerate ×1
subtitles ×1
video-codecs ×1