我正在使用ffmpeg创建HLS子播放列表。我已经用ffmpeg为各个版本创建了子播放列表。现在,我需要手动创建主播放列表.m3u8。
出于几个原因,我需要手动完成这个过程。我已经有了所需的一切,除了“CODECS”值。
如何获取我的文件中视频和音频流的CODECS值?当我使用ffprobe获取所有关于流的元数据时,无法看到相关数据。
带有CODECS的示例主要清单:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:BANDWIDTH=540863,RESOLUTION=640x360,CODECS="avc1.64001e,mp4a.40.2"
v0/prog_index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2339363,RESOLUTION=960x540,CODECS="avc1.64001f,mp4a.40.2"
v1/prog_index.m3u8
下面是我使用ffprobe工具获取到的元数据示例:
{'avg_frame_rate': '24000/1001',
'bit_rate': '35956',
'bits_per_raw_sample': '8',
'chroma_location': 'left',
'closed_captions': 0,
'codec_long_name': 'H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10',
'codec_name': 'h264',
'codec_tag': '0x31637661',
'codec_tag_string': 'avc1',
'codec_time_base': '1001/48000',
'codec_type': 'video',
'coded_height': 368,
'coded_width': 640,
'display_aspect_ratio': '16:9',
'disposition': {'attached_pic': 0,
'clean_effects': 0,
'comment': 0,
'default': 1,
'dub': 0,
'forced': 0,
'hearing_impaired': 0,
'karaoke': 0,
'lyrics': 0,
'original': 0,
'timed_thumbnails': 0,
'visual_impaired': 0},
'duration': '5.005000',
'duration_ts': 120120,
'has_b_frames': 2,
'height': 360,
'index': 0,
'is_avc': 'true',
'level': 30,
'nal_length_size': '4',
'nb_frames': '120',
'pix_fmt': 'yuv420p',
'profile': 'High',
'r_frame_rate': '24000/1001',
'refs': 1,
'sample_aspect_ratio': '1:1',
'start_pts': 0,
'start_time': '0.000000',
'tags': {'handler_name': 'VideoHandler',
'language': 'eng',
'timecode': '01:00:00:00'},
'time_base': '1/24000',
'width': 640}
{'avg_frame_rate': '0/0',
'bit_rate': '138375',
'bits_per_sample': 0,
'channel_layout': 'stereo',
'channels': 2,
'codec_long_name': 'AAC (Advanced Audio Coding)',
'codec_name': 'aac',
'codec_tag': '0x6134706d',
'codec_tag_string': 'mp4a',
'codec_time_base': '1/48000',
'codec_type': 'audio',
'disposition': {'attached_pic': 0,
'clean_effects': 0,
'comment': 0,
'default': 1,
'dub': 0,
'forced': 0,
'hearing_impaired': 0,
'karaoke': 0,
'lyrics': 0,
'original': 0,
'timed_thumbnails': 0,
'visual_impaired': 0},
'duration': '5.005000',
'duration_ts': 240240,
'index': 1,
'max_bit_rate': '138375',
'nb_frames': '236',
'profile': 'LC',
'r_frame_rate': '0/0',
'sample_fmt': 'fltp',
'sample_rate': '48000',
'start_pts': 0,
'start_time': '0.000000',
'tags': {'handler_name': 'SoundHandler', 'language': 'eng'},
'time_base': '1/48000'}
-master_pl_name
添加到你的ffmpeg HLS命令中,以获取一个临时播放列表,唯一的目的是获取编解码器,以帮助你手动创建实际的主播放列表。 - llogan-master_pl_name file.m3u8
,ffmpeg会显示“命令中发现尾随选项:可能会被忽略。”。 - Richard