Создание iPhone совместимого видео с ffmpeg из изображения и файла MP3 - PullRequest
6 голосов
/ 17 февраля 2020

У меня есть следующая команда, которую я использовал для создания видеофайла MP4 из изображения и файла MP3, он отлично воспроизводится в браузере Chrome на рабочем столе и на телефоне Android - но это не так работать на iPhone 10. Нужен ли какой-нибудь дополнительный код c или настройка, чтобы сделать его совместимым для iPhone? Должен ли я преобразовать это в файл MPEG вместо этого для более широкой совместимости?

ffmpeg -loop 1 -i 6f4aa5dfefc4dd32186f41315ad9d1e2-0.png -i "music.mp3" -c:v libx264 -tune stillimage -c:a aac -b:a 192k -pix_fmt yuv420p -shortest aa-image0.mp4

Вот подробности ffprobe для input файла MP3, используемого для создания видео MP4, а также ffprobe для этот выход файл:

Input #0, wav, from 'download0.mp3':
  Duration: 00:00:35.94, bitrate: 384 kb/s
    Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 24000 Hz, 1 channels, s16, 384 kb/s
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'aa-image0.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.22.100
  Duration: 00:00:38.76, start: 0.000000, bitrate: 505 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 2664x1498 [SAR 1:1 DAR 1332:749], 367 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 138 kb/s (default)
    Metadata:
      handler_name    : SoundHandler

Возможно, видео воспроизводится на iPhone, но звук постоянно запускается / останавливается. Как будто это потоковая проблема (хотя это не так). Возможно, проблема с кодировкой MP3 при создании видео?

Вот тестовые файлы, которые я использовал и создал (любые пользователи iPhone, вероятно, обнаружат, что MP4 не будет правильно воспроизводить звук в видео):

https://ffmpeg-iphone-issue.netlify.com/tesla.jpg

https://ffmpeg-iphone-issue.netlify.com/tesla.mp3

https://ffmpeg-iphone-issue.netlify.com/tesla.mp4 (ВЫХОД - Создан из 2 файла выше)


В общем, требуются две команды FFmpeg:

1) Используется для создания совместимых с iPhone / iOS видео в FFmpeg из изображения и MP3 (небольшое изменение команды в верхней части страницы)

и

2) Команда FFmpeg, которую можно использовать для исправления или перекодирования видео выше, чтобы оно работало на iPhone (Новая команда, включающая части, поэтому она работает с iPhone, а затем перестраивает и исправляет «испорченное» видео. Аналогично этому видео, где он исправляет испорченное видео https://www.youtube.com/watch?v=2FhmbKKh6mc [команда в описании Youtube])

1 Ответ

0 голосов
/ 19 февраля 2020

Возможно, попробуйте использовать мультиплексор ipod mp4, используя -f ipod:

ffmpeg -loop 1 -i 6f4aa5dfefc4dd32186f41315ad9d1e2-0.png -i "music.mp3" -c:v libx264 -tune stillimage -c:a aac -b:a 192k -pix_fmt yuv420p -shortest -f ipod aa-image0.mp4

...