ChinaFFmpeg

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1711|回复: 6

[Linux] 官方示例的remuxing如何设置

[复制链接]
发表于 2022-3-27 21:12:47 | 显示全部楼层 |阅读模式
初次使用 ffmpeg sdk 开发,如有莽撞,请各位见谅
因为毕设要求,需要 ffmpeg sdk 将 mp4 转封装切分为 m3u8。从官方示例里拿 remuxing.c 编译尝试了一下,转封装切分倒是成功了,但是 m3u8 的 #EXT-X-MEDIA-SEQUENCE 标签不是从 0 开始,而是从 36 开始,到 40 结束(但是从 0.ts 到 40.ts 都切分出来了);#EXT-X-TARGETDURATION 标签为 5
我想请教一下,如何让它可以从 0 开始呢?切片的时间如何设置呢?

以下是代码
remuxing.c (github.com)

编译
gcc -o remuxing remuxing.c -lavformat -lavcodec -lavutil

执行及打印的输入文件和输出文件信息
./remuxing input.mp4 output.m3u8

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf57.71.100
    description     : Packed by Bilibili XCoder v2.0.2
  Duration: 00:03:22.80, start: 0.000000, bitrate: 3053 kb/s
  Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 2919 kb/s, 23.98 fps, 23.98 tbr, 16k tbn (default)
    Metadata:
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]
Output #0, hls, to 'output.m3u8':
  Stream #0:0: Video: h264 (High), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 2919 kb/s
  Stream #0:1: Audio: aac (LC), 44100 Hz, stereo, fltp, 128 kb/s


回复

使用道具 举报

 楼主| 发表于 2022-3-27 21:16:39 | 显示全部楼层
这是切分后的 m3u8 文件
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:5
#EXT-X-MEDIA-SEQUENCE:36
#EXTINF:5.005000,
output36.ts
#EXTINF:5.005000,
output37.ts
#EXTINF:5.005000,
output38.ts
#EXTINF:5.005000,
output39.ts
#EXTINF:2.543022,
output40.ts
#EXT-X-ENDLIST
回复 支持 反对

使用道具 举报

发表于 2022-4-2 17:19:07 | 显示全部楼层
[AppleScript] 纯文本查看 复制代码
avformat_write_header(ofmt_ctx, NULL);

最后一个参数改成这样
[AppleScript] 纯文本查看 复制代码
ret = avformat_write_header(oc, &opt);



前面加上
[AppleScript] 纯文本查看 复制代码
AVDictionary *opt = NULL;
av_dict_set(&opt, "hls_list_size", "0", 0);
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|Archiver|ChinaFFmpeg

GMT+8, 2024-4-27 04:26 , Processed in 0.056060 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表