Я тех, хто підтримує програмне забезпечення, яке використовує ffmpegдля автоматичного змішування та перекодування двох вхідних потоків в єдиний вихід із відео- та аудіодоріжкою. В даний час я стикаюся з деякими проблемами з портативністю і хотів би вдосконалити своє використання, ffmpegщоб гарантувати, що моя програма буде максимально портативною:
- Працює майже на всіх ОС та дистрибутивах
- Працюватиме зі старими випусками ffmpeg (дебійський стиск все ще використовує ffmpeg 0.5.10)
Моє перше джерело - це файл FLV або mp4. Він містить два потоки: аудіо та відео. Мене не хвилює відео, воно не входить у підсумковий файл.
Друге джерело - це список зображень PNG або JPG. Вони будуть використані для створення відеопотоку за допомогою image2.
Вихід повинен бути файлом з двох потоків: аудіо та відео. У мене немає жодних вимог щодо контейнера, аудіокодека та відеокодека. Вони повинні бути легко доступними на будь-якій ОС / пристрої. Я хочу максимально зберегти якість звуку. Відеопотік - це лише набір статичних слайдів. Було б чудово мінімізувати розмір вихідного файлу.
Відповідно до цього опису, які прапорці / контейнер / кодеки ви б використовували?
Опис поточного процесу наступний:
Витягніть аудіозапис з першого джерела
ffmpeg -v error -i source_1_path -vn -acodec libvorbis audio_track.oggСтворіть підсумковий файл
ffmpeg -v error -f image2 -r 1 -i frame_pattern.jpg -i audio_track.ogg output.avi
Я думав, що ffmpeg автоматично використовувати найбільш підходящі аудіо / відео кодеки та налаштування. На жаль , це не буде працювати на деяких дистрибутивів Linux ( [ac3 @ 0x1e60380] invalid bit rateз 0.8.6-6:0.8.6-0ubuntu0.12.10.1, наприклад).
Очевидно, було б краще зробити це за один прохід, а не створювати тимчасову звукову доріжку.