有了这个库https://github.com/tanersener/mobile-ffmpeg,我在 iOS 上使用 FFMPEG。我正在尝试从音频创建视频,并添加了相关的波形、背景和徽标图像。
let command = "-i \(audioPath) -i \(imagePath) -filter_complex \"[0:a]showwaves=s=hd720:mode=line: colors=0x666666|0x555555[v];[1:v]scale=hd720[bg];[bg][v]overlay=shortest=0:main_h-overlay_h-35[outv]\" -shortest -map '[outv]' -map 'a' -c:a aac -f mp4 \(videoPath)"
使用上面的命令,我正在创建一个包含音频、波形和背景图像的视频。
let artworkCommand = "-y -i \(videoPath) -i \(artworkPath) -filter_complex \"[1:v][0:v]scale2ref=200:200[logo1][base];[base][logo1]overlay=20:20[v]\" -map \"[v]\" -map 0:a -y -codec:a copy \(artVideoPath)"
使用第二个命令,我在左上角添加了一个徽标图像。
当我直接在终端上执行这些命令时,输出的视频质量很高,没有问题。但是当我在 iOS 设备上尝试相同的命令时,在视频的第一秒之后,它变得模糊。
当我执行第一个命令本身时,它看起来像这样变得模糊。谁能指出为什么会这样?TIA。
更新 1 日志 - https://www.dropbox.com/s/ev8gw8bvfe1m7ur/Logs_FFMPEG.rtf?dl=0
更新 2 我按照建议修改了两个命令以包含比特率。它改进了视频,但仍然时不时地模糊。
let command = "-i \(audioPath) -i \(imagePath) -filter_complex \"[0:a]showwaves=s=hd720:mode=line: colors=0x666666|0x555555[v];[1:v]scale=hd720[bg];[bg][v]overlay=shortest=0:main_h-overlay_h-35[outv]\" -shortest -map '[outv]' -map 'a' -c:a aac -b:v 2M \(videoPath)"
let artworkCommand = "-y -i \(videoPath) -i \(artworkPath) -filter_complex \"[1:v][0:v]scale2ref=200:200[logo1][base];[base][logo1]overlay=20:20[v]\" -map \"[v]\" -map 'a' -c:a aac -b:v 2M \(artVideoPath)"
在 iOS 设备上执行的两个命令的演示 - https://www.dropbox.com/s/6ux4obufb0eiax6/video1x1_art.MP4?dl=0
日志 - https://www.dropbox.com/s/cjm259oehd048xb/Logs2.rtf?dl=0