![FFMpeg 解码隐藏式字幕](https://linux22.com/image/1533565/FFMpeg%20%E8%A7%A3%E7%A0%81%E9%9A%90%E8%97%8F%E5%BC%8F%E5%AD%97%E5%B9%95.png)
我有 150 多个流 URL,有些有 608 个字幕,有些有 708 个字幕,有些没有字幕,还有一些分别包含两个或多个字幕。
目标:将 URL 输入到 FFMpeg 并让它输出每个流中存在的字幕类型。
当我使用网络流 URL 进行以下电影输入时,似乎没有得到任何可用的输出:
ffmpeg -f lavfi -i movie=input.ts[out+subcc] -map 0:1 output.srt
输出:
semccart$ ffmpeg -f lavfi -i movie=https://hostname.com/master.m3u8?token [out+subcc] -map 0:1 output.srt
[5] 16438
[6] 16439
-bash: -map: command not found
[6] Done cdn=sa
bos-mpfnp:~ semccart$ ffmpeg version 3.2.2 Copyright (c) 2000-2016 the FFmpeg developers
built with Apple LLVM version 8.0.0 (clang-800.0.42.1)
configuration: --prefix=/opt/local --enable-swscale --enable-avfilter --enable-avresample --enable-libmp3lame --enable-libvorbis --enable-libopus --enable-libtheora --enable-libschroedinger --enable-libopenjpeg --enable-libmodplug --enable-libvpx --enable-libsoxr --enable-libspeex --enable-libass --enable-libbluray --enable-lzma --enable-gnutls --enable-fontconfig --enable-libfreetype --enable-libfribidi --disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes --disable-indev=jack --disable-outdev=xv --enable-audiotoolbox --enable-sdl2 --mandir=/opt/local/share/man --enable-shared --enable-pthreads --cc=/usr/bin/cc --enable-vda --enable-videotoolbox --arch=x86_64 --enable-yasm --enable-libx265 --enable-gpl --enable-postproc --enable-libx264 --enable-libxvid --enable-nonfree --enable-libfdk-aac
libavutil 55. 34.100 / 55. 34.100
libavcodec 57. 64.101 / 57. 64.101
libavformat 57. 56.100 / 57. 56.100
libavdevice 57. 1.100 / 57. 1.100
libavfilter 6. 65.100 / 6. 65.100
libavresample 3. 1. 0 / 3. 1. 0
libswscale 4. 2.100 / 4. 2.100
libswresample 2. 3.100 / 2. 3.100
libpostproc 54. 1.100 / 54. 1.100
这就是它挂起的地方。我也直接尝试过 TS 段。
此外,我该如何使用多个源 URL 大规模地执行此操作?
答案1
你见过堆栈溢出这个问题的答案是什么?
有些人使用此命令很幸运:
ffmpeg -i input.mov -an -vn -c:s copy -f rawvideo -map 0:s sub.txt
他们可以使用非 ts 文件结尾的视频。