【问题标题】:FFmpeg: Can't write metadata to a .ts fileFFmpeg:无法将元数据写入 .ts 文件
【发布时间】:2020-02-24 03:06:31
【问题描述】:

我有一个输入,我正在混合到一个 .ts 文件中,但是尽管 FFmpeg 的 wiki 说(它支持 MPEG 传输流的 titlelanguage 元数据键),title 不是'不传播到视频和音频:

ffmpeg -i "source" \
-map 0:0 -metadata:s:v:0 title="VIDEO_TITLE" \
-map 0:1 -metadata:s:a:0 language="eng" -metadata:s:a:0 title="AUDIO_TITLE" \
-c copy "output.ts"

语言是,但不是标题。

这是我实际混合时得到的:

Output #0, mpegts, to 'output.ts':
  Metadata:
    encoder         : Lavf58.20.100
    Stream #0:0: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 25 fps, 25 tbr, 90k tbn, 90k tbc (default)
    Metadata:
      variant_bitrate : 0
      title           : VIDEO_TITLE
    Stream #0:1(zxx): Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp
    Metadata:
      variant_bitrate : 0
      comment         : AUDIO_TITLE
      title           : AUDIO_TITLE

但是完成后,标题似乎不存在。它也不会出现在 mediainfo(或 VLC 中):

Input #0, mpegts, from 'output.ts':
  Duration: 01:00:00.00, start: 1.440000, bitrate: 5120 kb/s
  Program 1
    Metadata:
      service_name    : Service01
      service_provider: FFmpeg
    Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], Closed Captions, 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x101](zxx): Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp, 68 kb/s

如果我要运行相同的命令但给文件一个 mp4 扩展名,元数据会按预期混合,但不是 TS 文件 - 我做错了吗?

【问题讨论】:

    标签: ffmpeg


    【解决方案1】:

    title字段适用于TS文件中的节目而不是媒体流,键名实际上是service_name

    所以,

    ffmpeg -i "source" \
    -metadata service_name="PROGRAM_TITLE" \
    -map 0:0 \
    -map 0:1 -metadata:s:a:0 language="eng" \
    -c copy "output.ts"
    

    如果命令中没有定义任何程序,FFmpeg 将自动创建一个程序。

    【讨论】:

    • 所以我不能像在 MP4 容器中那样命名单个曲目?
    猜你喜欢
    • 1970-01-01
    • 2019-06-22
    • 2015-11-07
    • 1970-01-01
    • 1970-01-01
    • 2015-03-11
    • 2013-07-06
    • 2014-03-13
    • 1970-01-01
    相关资源
    最近更新 更多