尝试将字幕提取到txt文件
ffmpeg.exe -i video.mkv -c copy -map 0:s:0 subs.txt
Run Code Online (Sandbox Code Playgroud)
但出现以下错误
Unable to find a suitable output format for 'subs.txt'
subs.txt: Invalid argument
Run Code Online (Sandbox Code Playgroud)
完整控制台输出:
ffmpeg version N-81872-gbe1d324 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 5.4.0 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-libebur128 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib
libavutil 55. 32.100 / 55. 32.100
libavcodec 57. 60.101 / 57. 60.101
libavformat 57. 51.102 / 57. 51.102
libavdevice 57. 0.102 / 57. 0.102
libavfilter 6. 63.100 / 6. 63.100
libswscale 4. 1.100 / 4. 1.100
libswresample 2. 2.100 / 2. 2.100
libpostproc 54. 0.100 / 54. 0.100
Input #0, matroska,webm, from 'video.mkv':
Metadata:
CREATION_TIME : 2018-10-28T02:41:51Z
ENCODER : Lavf57.7.2
Duration: 00:11:45.39, start: 0.000000, bitrate: 2774 kb/s
Stream #0:0: Video: h264 (Main), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 180k tbc (default)
Stream #0:1(eng): Audio: aac (LC), 48000 Hz, stereo, fltp (default)
Metadata:
title : Stereo
Stream #0:2(eng): Subtitle: ass
[NULL @ 00000000038c9540] Unable to find a suitable output format for 'subs.txt'
subs.txt: Invalid argument
Run Code Online (Sandbox Code Playgroud)
仅当我指定输出文件的扩展名时它才有效ass,如下所示:
ffmpeg.exe -i video.mkv -c copy -map 0:s:0 subs.ass
Run Code Online (Sandbox Code Playgroud)
它正确提取并创建带有字幕的 subs.ass 文件
ffmpeg 如何解释输出文件的扩展名?为什么我必须指定输出文件的确切扩展名?
类似的问题,但这里有不同的错误: ffmpeg无法找到适合'subs.srt'的输出格式
.txt当在输出路径中提供文件扩展名时,ffmpeg 不知道您想要什么样的输出。除非被该-f选项覆盖,否则它将尝试从文件结尾找出必要的格式,因此.ass将调用正确的 SSA 格式、.srtSubRip 格式等。同样适用.mp4,.mov、 等
要查看支持哪些格式,请运行ffmpeg -formats. 格式名称和文件扩展名\xe2\x80\x94之间没有完美的映射,有时可能有多个扩展名触发格式\xe2\x80\x94,但大多数情况下它们是相同的。例如,该格式mp4以文件结尾 调用.mp4,该格式matroska以.mkv.
至于你的字幕,你可以强制 ffmpeg 使用给定的格式-f <format>。例如:
ffmpeg -i <input> -map 0:s:0 -c copy -f srt output.txt\nRun Code Online (Sandbox Code Playgroud)\n\n假设您的输入有 SRT 字幕。如果不这样做,-c copy将无法工作。省略该-c copy部分,例如,如果您打算输出-f ass.
| 归档时间: |
|
| 查看次数: |
5127 次 |
| 最近记录: |