我在同一个文件夹中有一个名为 test.m4a 和 test.srt 的文件。
我怎样才能将字幕刻录到 m4a 中?
我得到的输出是:
Korays-MacBook-Pro:~ koraytugay$ ./ffmpeg -i test.m4v -vf subtitles=test.srt out.m4v
ffmpeg version 2.4.2 Copyright (c) 2000-2014 the FFmpeg developers
built on Oct 8 2014 19:37:09 with llvm-gcc 4.2.1 (LLVM build 2336.11.00)
configuration: --prefix=/Volumes/Ramdisk/sw --enable-gpl --enable-pthreads --enable-version3 --enable-libspeex --enable-libvpx --disable-decoder=libvpx --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-avfilter --enable-libopencore_amrwb --enable-libopencore_amrnb --enable-filters --enable-libgsm --enable-libvidstab --enable-libx265 --arch=x86_64 --enable-runtime-cpudetect
libavutil 54. 7.100 / 54. 7.100
libavcodec 56. 1.100 / 56. 1.100
libavformat 56. 4.101 / 56. 4.101
libavdevice 56. 0.100 / 56. 0.100
libavfilter 5. 1.100 / 5. 1.100
libswscale 3. 0.100 / 3. 0.100
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 0.100 / 53. 0.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fca6201e000] stream 0, timescale not set
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fca6201e000] Could not find codec parameters for stream 1 (Video: none (drmi / 0x696D7264), 640x478, 1389 kb/s): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fca6201e000] Could not find codec parameters for stream 2 (Subtitle: none (p608 / 0x38303670), 853x478, 0 kb/s): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.m4v':
Metadata:
major_brand : M4V
minor_version : 0
compatible_brands: M4V mp42isom
creation_time : 2014-06-09 19:13:04
title : Day 1: 2:00 A.M. - 3:00 A.M.
artist : 24
album_artist : 24
album : 24
genre : Drama
track : 3
disc : 1/1
compilation : 0
gapless_playback: 0
date : 2001-11-20T08:00:00Z
copyright : © 2001 Twentieth Century Fox Film Corporation
description : Jack verifies the key card was encrypted on Nina's computer.
show : 24
episode_id : 1AFF02
season_number : 1
episode_sort : 3
media_type : 10
synopsis : Kimberly and Janet find themselves in great danger and must look for an escape route. In her search for Kimberly, Teri has found help from Janet's father Alan York. Meanwhile, Palmer attends a secret meeting about disturbing news that is about to break,
iTunMOVI : <?xml version="1.0" encoding="UTF-8"?>
: <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
: <plist version="1.0">
: <dict>
: <key>asset-info</key>
: <dict>
: <key>closed-captioned</key>
: <true/>
: <key>file-size</key>
: <integer>484838754</integer>
: <key>flavor</key>
: <string>4:640x480LC-128</string>
: <key>screen-format</key>
: <string>widescreen</string>
: </dict>
: </dict>
: </plist>
:
Duration: 00:42:30.01, start: 0.000000, bitrate: 1521 kb/s
Stream #0:0(eng): Audio: aac (drms / 0x736D7264), 44100 Hz, stereo, fltp, 124 kb/s (default)
Metadata:
creation_time : 2014-06-09 19:13:04
handler_name : Apple Sound Media Handler
Stream #0:1(eng): Video: none (drmi / 0x696D7264), 640x478, 1389 kb/s, SAR 4:3 DAR 1280:717, 23.98 fps, 23.98 tbr, 2997 tbn, 2997 tbc (default)
Metadata:
creation_time : 2014-06-09 19:13:04
handler_name : Apple Video Media Handler
Stream #0:2(eng): Subtitle: none (p608 / 0x38303670), 853x478, 0 kb/s (default)
Metadata:
creation_time : 2014-06-09 19:13:04
handler_name : Apple Closed Caption Media Handler
Stream #0:3: Video: mjpeg, yuvj444p(pc, bt470bg), 1400x1400 [SAR 300:300 DAR 1:1], 90k tbr, 90k tbn, 90k tbc
[AVFilterGraph @ 0x7fca61e133e0] No such filter: 'subtitles'
Error opening filters!
Korays-MacBook-Pro:~ koraytugay$
答案1
喜欢维基页面提到,您的 ffmpeg 版本需要使用--enable-libass
字幕过滤器选项进行编译才能正常工作。您的版本似乎不幸没有这个选项。
最简单的方法是使用自制。
然后安装ffmpeg:
brew install ffmpeg
然后重试:
ffmpeg -i test.m4v -vf subtitles=test.srt -c:a copy out.m4v
请务必阅读H.264 编码指南了解如何设置输出质量。
请注意,您无法转换经过 DRM 加密的文件,例如示例中的文件(请参阅视频编解码器drmi
)。这是一个未结票对于 ffmpeg,但不太可能得到解决。
答案2
我最终在运行 Parallels 的 Windows 中使用 vidcoder 1.5.22。