【问题标题】:Discard data stream from container using ffmpeg使用 ffmpeg 从容器中丢弃数据流
【发布时间】:2018-08-02 11:29:36
【问题描述】:

我正在尝试使用 ffmpeg 删除 Mp4 容器中的数据(字幕)流。

这是来自 ffprobe 的屏幕截图:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.m4v':
Metadata:
major_brand     : isom
minor_version   : 2
compatible_brands: isomiso2avc1mp41
creation_time   : 2018-01-19T15:10:48.000000Z
Duration: 00:00:42.17, start: 0.000000, bitrate: 6260 kb/s
Chapter #0:0: start 0.000000, end 42.166000
Metadata:
  title           : Chapter 1
Stream #0:0(eng): Data: bin_data (text / 0x74786574), 0 kb/s (default)
Metadata:
  creation_time   : 2018-01-19T15:10:48.000000Z
  handler_name    : Apple Alias Data Handler
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, 
fltp, 317 kb/s (default)
Metadata:
  creation_time   : 2018-01-19T15:10:48.000000Z
  handler_name    : AAC audio
Stream #0:2(eng): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc), 
1920x1080, 5926 kb/s, 30 fps, 30 tbr, 30k tbn, 60k tbc (default)
Metadata:
  creation_time   : 2018-01-19T15:10:48.000000Z
  handler_name    : H264 video
 **Unsupported codec with id 100359 for input stream 0**

我试过了:

 ffmpeg -i test.m4v -acodec copy -vcodec copy -sn nodata.mp4

数据轨道还在,只是从流 0 移动到流 2

我也试过了:

 ffmpeg -i test.m4v -acodec copy -vcodec copy -map 0:1 -map 0:2 no2.mp4

同样的结果,音轨还在,只是跳到了 0:2 流,没有运气。

有什么提示吗? 提前致谢

【问题讨论】:

  • 共享上一条命令的完整控制台输出。

标签: video ffmpeg containers mp4 subtitle


【解决方案1】:

谢谢,我解决了使用带有负值的-map_chapters 选项来删除数据流。

完整字符串:

ffmpeg -i in.mp4 -c:v copy -c:a copy -map_chapters -1 out.mp4 

希望这对其他人有帮助!

【讨论】:

    【解决方案2】:

    最好用这个命令代替-map_chapters -1

    ffmpeg -i in.mp4 -c copy -dn -map_metadata:c -1 out.mp4
    

    -dn 表示我们不需要将数据流从in.mp4 复制到out.mp4。如果源文件中有数据流,则它是必需的。但即使源文件中没有数据流,ffmpeg 也会将数据流附加到输出文件以保留章节元数据信息(章节名称)。这使玩家能够为每个章节命名。

    如果您不需要它,您的章节可能没有名称。 -map_chapters -1 完全删除章节,因此在视频流中您将丢失所有章节。但是,如果您只是不想包含数据流,则使用 -map_metadata:c -1 您可能会保留章节而只是丢失它们的名称。这可能是一个更好、破坏性更小的想法。

    供参考:

    -dn (output)
        Disable data recording. For full manual control see the "-map" option.
    

    【讨论】:

    • Referenced QT chapter track not found 将在生成的文件上显示为红色,但可以使用 -ignore_chapters 1 忽略它。 ref
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-28
    • 1970-01-01
    • 1970-01-01
    • 2018-03-16
    • 2018-05-07
    • 2011-11-02
    • 2010-11-20
    相关资源
    最近更新 更多