ffmpeg/ffprobe 获取 video/audio 流的 HLS 'codecs' 字符串
ffmpeg/ffprobe get HLS 'codecs' string for a video/audio stream
我正在使用 ffmpeg 创建 HLS 子播放列表。我使用 ffmpeg 为演绎创建它们。现在我需要创建 master 播放列表 .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'}
ffprobe
将不会提供 HLS CODECS
信息。
虽然您是手动制作自己的主播放列表,但请将 -master_pl_name playlist.m3u8
添加到您的命令中并从结果文件 (playlist.m3u8
) 中获取 CODECS
值。
我正在使用 ffmpeg 创建 HLS 子播放列表。我使用 ffmpeg 为演绎创建它们。现在我需要创建 master 播放列表 .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'}
ffprobe
将不会提供 HLS CODECS
信息。
虽然您是手动制作自己的主播放列表,但请将 -master_pl_name playlist.m3u8
添加到您的命令中并从结果文件 (playlist.m3u8
) 中获取 CODECS
值。