使用FFMPEG对音频流进行编码,以生成适用于iOS设备的h264格式的音频流。

4
我使用Python中的FFMPEG对导入的视频进行低比特率版本的编码。 我希望输出可以在多种设备上播放,包括Roku和iOS。此链接指出,苹果支持H264高级配置、4.1级别和MP3音频。
ffmpeg -preset veryslow -y -profile:v high -level 4.0 -movflags +faststart -codec:a libmp3lame -qscale:a 2 -s 1280x720 out.mp4

在计算机的HTML5浏览器中,生成的视频可以正常播放。然而,在iPhone上,视频可以显示,但音频流无法播放。mp3设置是否有问题?

来自ffprobe:

[STREAM]
index=1
codec_name=mp3
codec_long_name=MP3 (MPEG audio layer 3)
profile=unknown
codec_type=audio
codec_time_base=1/44100
codec_tag_string=mp4a
codec_tag=0x6134706d
sample_fmt=s16p
sample_rate=44100
channels=1
channel_layout=mono
bits_per_sample=0
id=N/A
r_frame_rate=0/0
avg_frame_rate=0/0
time_base=1/44100
start_pts=-1105
start_time=-0.025057
duration_ts=2321489
duration=52.641474
bit_rate=94949
max_bit_rate=N/A
bits_per_raw_sample=N/A
nb_frames=2016
nb_read_frames=N/A
nb_read_packets=N/A
DISPOSITION:default=1
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
TAG:language=und
TAG:handler_name=SoundHandler
[/STREAM]

我尝试使用AAC编码器,但使用本地FFMPEG编码器效果不佳。

1个回答

0

你所引用的文档是关于HTTP Live Streaming的,它使用的是传输流格式,而不是ISO mp4格式。无论如何,在iOS中我发现了很多mp3+video的问题。我的建议是改用AAC(-acodec fdk-aac)而不是mp3。它同样得到广泛支持,并且在更低比特率下能提供更好的音频质量。如果这不是一个选择,那就尽量在命令行上指定所有音频设置(-channles -samplerate等)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接