AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题

问题[ffmpeg](computer)

Martin Hope
Tony M
Asked: 2025-04-20 04:42:13 +0800 CST

如何使用 FFmpeg 为多语言视频添加其他语言?

  • 6

我想使用 FFmpeg为一个已经包含意大利语、法语和德语的视频(称为)添加英语音频和字幕轨道(eng.mp3和) 。关键是最终的视频能够支持在多种语言的音频和字幕轨道之间切换。eng.srt3.mp4

总而言之,我想要:3.mp4 + eng.mp3 + eng.srt → 3plus1.mp4

我尝试过这个但是没有用::

ffmpeg -i 3.mp4 -i eng.mp3 -i eng.srt \
-map 0:v -map 0:a -map 1:a -map 2:s:0 \
-metadata:s:a:0 language=eng -metadata:s:s:0 language=eng \
-c:s:0 mov_text -shortest 3plus1.mp4

我可以使用 4 种语言(4.mp4)从头开始制作视频,如下.mp3所示.srt(请注意,视频部分是即时生成的,仅为黑色背景;这使文件保持较小以进行测试,而视频不是这里的重点):

这有效:ita.mp3 + fre.mp3 + ger.mp3 + eng.mp3 + ita.srt + fre.srt + ger.srt + eng.srt → 4.mp4

ffmpeg -f lavfi -i "color=color=black:s=1280x720" \
-i ita.mp3 -i fre.mp3 -i ger.mp3 -i eng.mp3 \
-i ita.srt -i fre.srt -i ger.srt -i eng.srt \
-map 0:v -map 1:a:0 -map 2:a:0 -map 3:a:0 -map 4:a:0 \
-map 5:s:0 -map 6:s:0 -map 7:s:0 -map 8:s:0 \
-metadata:s:a:0 language=ita -metadata:s:a:1 language=fra -metadata:s:a:2 language=ger -metadata:s:a:3 language=eng \
-metadata:s:s:0 language=ita -metadata:s:s:1 language=fra -metadata:s:s:2 language=ger -metadata:s:s:3 language=eng \
-c:s:0 mov_text -c:s:1 mov_text -c:s:2 mov_text -c:s:3 mov_text \
-shortest 4.mp4

我不知道如何上传我用于测试的文件,但我发现一个名为 disroot 的网站看起来允许文件共享。

此链接是count.zip我创建的包含所有用于测试的文件的档案。

编辑:@Alain1A45 提供的命令几乎有效:

ffmpeg -i 3.mp4 -i eng.mp3 -i eng.srt -map 0:v -map 0:a -map 1 -map 0:s -map 2 -c copy -c:s:3 mov_text -metadata:s:a:3 language=eng -metadata:s:s:3 language=eng -shortest 3plus1.mp4

我说“几乎可用”,是因为它确实添加了额外的音频(eng.mp3)和字幕(eng.srt),但英语音频在 Mac OS 的 QuickTime 播放器和 iPhone 版 Documents (by Readdle) 的视频播放器中都无法显示。由于我一直都在用这些播放器,所以我还在寻找解决方案。

这是显示无法使用英语音频的屏幕截图: qt播放器图像

我知道有英文音频,因为我可以用 ffmpeg 命令看到它,而且 VLC 播放器在 Mac OS 和 iOS 上都能播放。可惜的是,我发现 VLC 播放器用起来很不方便。

ffmpeg
  • 1 个回答
  • 95 Views
Martin Hope
Glyn Davies
Asked: 2025-04-17 03:32:18 +0800 CST

在 Windows 11 上使用 libx264rgb 编解码器进行屏幕录制

  • 7

我正在尝试使用 ffmpeg 在 Win11 上录制我的游戏屏幕,方法如下:

ffmpeg -f gdigrab -framerate 20 -c:v libx264rgb -crf 0 -preset ultrafast -color_range 2 -offset_x 0 -offset_y 0 -video_size 1920x1080 -i desktop -show_region 1 C:\Action!\Video\output.mkv

我在 ffmpeg 信息后收到一条错误消息,内容为:
未知解码器“libx264rgb”
错误打开输入文件桌面。
错误打开输入文件:未找到解码器

从信息来看,ffmpeg 似乎已经使用 libx264rgb 支持进行了编译:

ffmpeg 版本 N-118007-g2f95bc3cb3-20241204 版权所有 (c) 2000-2024 FFmpeg 开发人员使用 gcc 14.2.0(crosstool-NG 1.26.0.120_4d36f27)构建配置:--prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --disable-w32threads --enable-pthreads --enable-iconv --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-libxml2 --enable-lzma --启用字体配置 --启用 libharfbuzz --启用 libvorbis --启用 opencl --禁用 libpulse --启用 libvmaf --禁用 libxcb --禁用 xlib --启用 amf --启用 libaom --启用 libaribb24 --启用 avisynth --启用 chromaprint --启用 libdav1d --启用 libdavs2 --启用 libdvdread --启用 libdvdnav --禁用 libfdk-aac --启用 ffnvcodec --启用 cuda-llvm --启用 frei0r --启用 libgme --启用 libkvazaar --启用 libaribcaption --启用 libass --启用 libbluray --启用 libjxl --启用 libmp3lame --启用 libopus --启用 librist --启用 libssh --启用 libtheora --启用 libvpx --启用 libwebp --启用 libzmq --启用 lv2 --启用 libvpl --启用 openal --启用 libopencore-amrnb --启用 libopencore-amrwb --启用 libopenh264 --启用 libopenjpeg --启用 libopenmpt --启用 librav1e --启用 librubberband --启用 schannel --启用 sdl2 --启用 libsoxr --启用 libsrt --启用 libsvtav1 --启用 libtwolame --启用 libbuavs3d --禁用 libdrm --启用 vaapi --启用 libvidstab --启用 vulkan --启用 libshaderc --启用 libplacebo --启用 libvvenc --启用 libx264 --启用 libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-libs=-lgomp --extra-ldflags=-pthread --extra-ldexeflags= --cc=x86_64-w64-mingw32-gcc --cxx=x86_64-w64-mingw32-g++ --ar=x86_64-w64-mingw32-gcc-ar --ranlib=x86_64-w64-mingw32-gcc-ranlib --nm=x86_64-w64-mingw32-gcc-nm --extra-version=20241204 libavutil 59. 47.101 / 59. 47.101 libavcodec 61. 26.100 / 61. 26.100 libavformat 61. 9.100 / 61. 9.100 libavdevice 61. 4.100 / 61. 4.100 libavfilter 10. 6.101 / 10. 6.101 libswscale 8. 12.100 / 8. 12.100 libswresample 5. 4.100 / 5. 4.100 libpostproc 58. 4.100 / 58. 4.100

运行“ffmpeg -codecs”后,我确实看到了以下行:
DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10(解码器:h264 h264_qsv libopenh264 h264_cuvid)(编码器:libx264 libx264rgb libopenh264 h264_amf h264_mf h264_nvenc h264_qsv h264_vaapi h264_vulkan)

如果我使用以下方法ffmpeg -f gdigrab -framerate 20 -i desktop C:\Action!\Video\output.mkv,它可以正常工作,但是在观察帧速率时,它并没有达到 20fps,所以我想使用更快/更高效的编码选项来减少开销......

我在装有 Intel HD Graphics 620 显卡的笔记本电脑上对此进行了测试,然后再转移到装有 Nvidia 显卡的台式机上。

非常感谢
Glyn

------------- 编辑 -------------
错误信息已整理,感谢关于调整部分内容顺序的信息。然而,它并没有达到 25fps 的水平,而且丢帧了:

Duration: N/A, start: 1745794842.477476, bitrate: 1658890 kb/s Stream #0:0: Video: bmp, bgra, 1920x1080, 1658890 kb/s, 25 fps, 1000k tbr, 1000k tbn Stream mapping: Stream #0:0 -> #0:0 (bmp (native) -> h264 (libx264rgb)) Press [q] to stop, [?] for help [libx264rgb @ 000002943760d9c0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 [libx264rgb @ 000002943760d9c0] profile High 4:4:4 Predictive, level 4.0, 4:4:4, 8-bit [libx264rgb @ 000002943760d9c0] 64 - core 164 - H.264/MPEG-4 AVC codec - Copyleft 2003-2024 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=0 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=0 chroma_qp_offset=0 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=0 intra_refresh=0 rc=cqp mbtree=0 qp=0 Output #0, matroska, to 'C:\Action!\Video\output.mkv': Metadata: encoder : Lavf61.9.100 Stream #0:0: Video: h264 (H264 / 0x34363248), rgb24(pc, gbr/unknown/unknown, progressive), 1920x1080, q=2-31, 25 fps, 1k tbn Metadata: encoder : Lavc61.26.100 libx264rgb Side data: cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A frame= 372 fps= 24 q=0.0 size= 3072KiB time=00:00:15.20 bitrate=1655.6kbits/s dup=0 drop=7 speed=0.982x

我认为使用 lib264rgb 编码器会更有效率...

Cheers Glyn

ffmpeg
  • 1 个回答
  • 68 Views
Martin Hope
Peter
Asked: 2025-04-12 00:44:50 +0800 CST

如何使用 FFmpeg 将视频沿垂直轴旋转为梯形以获得 3D 外观?

  • 7

我想将一段视频叠加在虚拟演播室背景上。叠加的视频需要“倾斜”才能呈现出虚拟的3D效果。背景如下所示:

灰色背景上的白色梯形

并且应该使覆盖视频适合白色形状。

我主要使用 FFmpeg,所以我开始在那里寻找,并找到了带有“yawl”选项的 v360-Filter。使用如下代码:

ffmpeg -i .\in.mp4 -vf v360=flat:yaw=10 out.mp4

是将叠加视频变成所需形状的第一步:

测试图倾斜

但是我找不到任何关于如何从这里继续前进的信息,v360过滤器的文档非常稀少,并且最终,过滤器用于不同的用例 - 即转换 360 度视频。

有人知道如何存档所需的效果吗?或者可以给我一些关于这个v360滤镜的文档吗?或者我是不是忽略了其他滤镜?

即使使用任何其他命令行工具/编程库(OpenCV?)的解决方案也会有所帮助。

ffmpeg
  • 1 个回答
  • 36 Views
Martin Hope
Att Righ
Asked: 2025-03-31 03:48:49 +0800 CST

我如何知道哪个参数是 ffmpeg 过滤器的默认参数?

  • 11

我注意到一些 ffmpeg 过滤器省略了某些参数的参数名称。

例如,你可以写:

ffplay -f lavfi -i 'color=red'

而不是使用color=color=red; 或

ffplay -f lavfi -i 'color=white:size=1024x512, drawtext=hello, scale=500x300'

我如何知道哪个参数是“默认参数”?

ffmpeg
  • 1 个回答
  • 754 Views
Martin Hope
Pubg Mobile
Asked: 2025-03-29 14:12:49 +0800 CST

如何将 SVG 序列转换为高清 4K 视频?

  • 8

我有大量的 SVG 序列文件,并且我已在此处上传了一个示例:
https://easyupload.io/epuw45

我想将这些 SVG 文件转换为非常高质量的 4K 视频。每个 SVG 文件应代表视频中的一帧。

我尝试过使用带有 librsvg 库的 FFmpeg,但它会将每个 SVG 转换为 PNG,然后将 PNG 转换为视频。这个过程非常慢,占用大量 CPU,并导致磁盘写入量高,这并不理想。

我还尝试使用 lxml 库将 SVG 文件合并为一个动画 SVG,但效果不如预期。所有 SVG 文件都接连出现在输出文件中,这意味着前一个 SVG 在下一个 SVG 出现之前不会消失。

我甚至不确定将 SVG 合并为单个动画 SVG 是否允许我成功将其转换为视频文件。

我偶然发现了这个 GitHub 项目:https://github.com/tomkwok/svgasm,它可能有助于将 SVG 合并到动画文件中,但我不确定如何使用它。

还有其他方法可以将我的 SVG 序列文件转换为高品质的 4K 视频吗?
例如,我可以使用 Adob​​e Premiere、After Effects 或 Animate 等 Adob​​e 工具吗?或者有可以执行此操作的 Python 脚本吗?

注意:我不想将 SVG 转换为 PNG 文件,因为该过程耗时太长,会导致 CPU 使用率过高,并导致过多的磁盘写入。此外,我的 SVG 文件从内部文件夹加载图像资源,因此需要考虑到这一点。

最后,升级对于输出视频来说极其重要。

ffmpeg
  • 2 个回答
  • 175 Views
Martin Hope
Pubg Mobile
Asked: 2025-03-25 18:59:10 +0800 CST

如何将 SWF 转换为 4K 高质量升级视频?

  • 5

我有一个高质量的 4K SWF 文件,我想将其转换为具有高质量升级的 4K 视频。但是,我不想使用 FFmpeg 进行此过程。

我尝试过以下工具,但没有成功:

  • Adobe Animate
  • 视频处理
  • 手刹
  • Movavi 视频转换器
  • Recool Professional SWF 转 AVI
  • Apowersoft视频转换工具
  • VLC 媒体播放器
  • 菲利斯泰克
  • 大多数 Python 脚本来自 GitHub

注意:输出视频时,升级对我来说非常重要。具体来说,放大视频的任何一帧时,点必须保持清晰,不会损失质量或模糊。

ffmpeg
  • 1 个回答
  • 87 Views
Martin Hope
Jon Glazer
Asked: 2025-03-20 20:34:56 +0800 CST

如何给视频添加源标签?

  • 5

FFmpeg 中是否有一个设置可以让我设置视频的源标签,以便我可以跟踪过去编码过(或未编码)的视频?也许可以向当前标签添加文本和/或替换标签?

ffmpeg
  • 1 个回答
  • 48 Views
Martin Hope
ComputerUser121212
Asked: 2025-03-19 22:40:26 +0800 CST

HEVC NVENC 编解码器从非隔行输入生成隔行输出

  • 5

我有一个(合法获得和复制的)h264 mp4 蓝光翻录文件,我正在尝试减小它的尺寸。

我曾尝试通过 FFmpeg 和 HandBrake 将其编码为 h265,但结果是隔行扫描的视频(源不是隔行扫描的),看起来非常烦人。

我应该向 FFmpeg 指定哪些选项来防止这种情况发生?

到目前为止,我一直使用 FFmpeg 中编解码器的默认选项hevc_nvenc以及 HandBrake 中等效编解码器。

非隔行源帧的特写: 非隔行扫描的帧特写

隔行扫描结果帧的特写: 交错的框架特写

编辑:

FFprobe 对输入文件的输出(仅相关流):

Stream #0:0(eng): Video: h264 (High), yuv420p(top first), 1920x1080 [SAR 1:1 DAR 16:9], 29.97 fps, 29.97 tbr, 1k tbn
  Metadata:
    BPS-eng         : 26434120
    DURATION-eng    : 01:58:41.013900000
    NUMBER_OF_FRAMES-eng: 213417
    NUMBER_OF_BYTES-eng: 23529714835
    SOURCE_ID-eng   : 001011
    _STATISTICS_WRITING_APP-eng: MakeMKV v1.17.7 win(x64-release)
    _STATISTICS_WRITING_DATE_UTC-eng: 2024-07-26 11:27:31
    _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES SOURCE_ID
ffmpeg
  • 1 个回答
  • 55 Views
Martin Hope
tvanc
Asked: 2025-03-14 12:59:33 +0800 CST

iOS 视频 creation_time 值与显示的时间戳不匹配

  • 6

我从 iCloud 下载的视频中的元数据creation_time与我在 iCloud 上看到的时间戳不匹配。例如,我这里有一个视频,其元数据在我的 PC 上显示为 2025-01-10T21:14:45.000000Z。

但在 iCloud 上,时间戳显示Jan 9, 2025 9:30:54 AM:
在此处输入图片描述

相差的是35:43:51(hh:mm:ss)

在大约两周后的视频中,差异是50:08:56。在大约两周前的视频中,差异是08:12:10。随着时间的推移,差异似乎越来越大。

这是怎么回事?我是否应该寻找其他值?我正在使用它ffprobe来提取元数据。

示例命令:

ffprobe -v quiet -select_streams v:0  -show_entries stream_tags=creation_time -of default=noprint_wrappers=1:nokey=1 IMG_9912.mp4
ffmpeg
  • 1 个回答
  • 28 Views
Martin Hope
anon
Asked: 2025-02-21 23:46:52 +0800 CST

ffmpeg - 如何合并单个视频中的重叠剪辑?

  • 8

我正在尝试使用 ffmpeg 从视频中截取一些片段并将它们组合在一起,类似于这样。

除了剪辑来自重叠的时间戳之外。我的命令如下所示:

"C:\Program Files\ffmpeg\bin\ffmpeg.exe" -y -i "C:\temp\5min.mp4" ^
-vf "select='between(t,4,6.5)+between(t,5,6)', setpts=N/FRAME_RATE/TB" ^
-af "aselect='between(t,4,6.5)+between(t,5,6)', asetpts=N/SR/TB" "C:\temp\5min-clip.mp4"

输出的视频仅包含第一个剪辑。我使用的是最新版本的 ffmpeg。

我如何实现这个目标?

ffmpeg
  • 1 个回答
  • 43 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    Vickel Firefox 不再允许粘贴到 WhatsApp 网页中? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke 为什么使用 Python 的 tar 库时 tar.xz 文件比 macOS tar 小 15 倍? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve