ffplay - як грати разом окремі відео та аудіо файли


8

Тому я можу перекодувати окремі відео- та аудіофайли в один файл фільму, наприклад:

ffmpeg -ss 0 -lowres 0 -r 24 -i dcp/picture.mxf -vf "xyz2rgb" -i mov/sound.wav -ac 2 -ab 256k -vb 3000k -t 10 -y mov/movie.mp4

Побачте та почуйте фільм, який з'явився в результаті:

ffplay -ss 0 -lowres 1 -vf "xyz2rgb" mov/movie.mp4

Однак, щоб уникнути необхідності перекодувати фільм і звук в один файл, перш ніж його можна побачити, я хотів би просто відтворити два окремі файли разом. Наскільки я знаю, ffplay не дозволяє комбінувати два різних файли (вірно?).

Читання цих форумів здається, що ви можете Вивести ffmpeg на ffplay . Наступне настільки близьке, як я отримав. Це не так близько. : (Відео-інформація явно переноситься, але це зелений "сніг" у правильному розмірі кадру, з натяками фактичного зображення, що танцює всередині жахливого зеленого снігу. Таким чином, я знаю, що щось із фактичних даних про зображення переноситься , просто не візуалізуючи правильно.

І не відтворюється звук. Звук не переноситься (я не думаю). Тепер ... Я застряг. Нижче наведено, що я намагаюся зробити, але він не працює:

ffmpeg -ss 0 -lowres 0 -r 24 -i dcp/picture.mxf -vf "xyz2rgb" -i mov/sound.wav -f rawvideo - | ffplay -f rawvideo -vf "xyz2rgb" -s 1998x1080 -

Відповіді:


3

Це не перетворює потоки:

ffmpeg -i video.mkv -i audio.mkv -c copy -map 0:0 -map 1:1 output.mkv

-map 1:1 = другий файл, потік 1 (зазвичай аудіо). -c copy = -c:v copy -c:a copy. За замовчуванням файл у форматі muxed до тих пір, як довший файл, але -shortest зробить це довше, ніж короткий файл.


Дякуємо за цю інформацію. Мені не потрібний вихідний файл, але ці комутатори дійсно добре знають.
Bill Rudolph Yaber Russell

3

Відомо, що відеоінформація переноситься, але це зелений "сніг" у правильному розмірі кадру, з натяками фактичних образів, які танцюють у жахливому зеленому снігу.

Це має бути піксельний формат. Ви застосовуєте xyz2rgb фільтр, який перетворює кольоровий простір DCP у RGB, а потім перетворюється на сире відео ffplay. Тут ви застосовуєте xyz2rgb фільтр знову , що, ймовірно, викликає спотворення, оскільки FFmpeg не знає, як кодується необроблене відео. З відео буде зроблено все, що ви хочете, навіть двічі перетворюючи колірний простір.


У мене були хороші результати, щоб передати формат Matroska ffplay замість rawvideo, що також дає можливість декодувати аудіо (див. нижче). Формат Matroska може містити будь-який вид кодека.

Зауважте, що порядок параметрів має значення в FFmpeg, і ви, ймовірно, повинні використовувати більш нову версію, оскільки це більш суворо про те, де ви розміщуєте параметри:

  • Глобальні параметри подібні -y на перше місце.
  • Потім вкажіть параметри для читання вхідних файлів - -r 24 змушує частоту кадрів для picture.mxf файл.
  • Потім вкажіть всі вхідні файли.
  • Потім з'являються опції кодека, такі як відеофільтри, бітрейт відео та ін.

У вашій ситуації має сенс просто скопіювати аудіопотік, оскільки нам не потрібно його перекодувати. Відео потрібно перекодувати, щоб можна було застосувати фільтр.

Щось подібне має робити. Зверніть увагу на те, як ми явно встановлюємо вихідний формат як matroska і нехай ffplay зрозуміти сам інший:

ffmpeg -r 24 -i dcp/picture.mxf -i mov/sound.wav \
-filter:v "xyz2rgb" -b:v 3000k -c:a copy -t 10 -f matroska - | \
ffplay -

Я використав синтаксис (менш неоднозначний) для варіантів, таких як -filter:v замість -vf, -b:v замість -vb, і -c:a замість -acodec.

Якщо цей формат не працює для вас, спробуйте AVI:

ffmpeg -i picture.mxf -i sound.wav -f avi - | ffplay -

Це працював для мене без проблем і навіть не потрібно було використовувати фільтр, який вам потрібен. Аудіо також працювала.


slhck, спасибі за це! Добре, я отримав таке: & lt; br / & gt; & lt; br / & gt; Неможливо знайти відповідний формат виводу для '-filter: v' -filter: v: Неправильний аргумент & lt; br & gt; & lt; br & gt; ?? (те ж саме для -vf). Кодек & amp; фільтр звідси: goo.gl/avE1f - автор написав і розробив спеціальну установку ffmpeg (тільки одна версія, яка працює з цією процедурою і його файлами), що включає в себе власний кодек і фільтр колірного простору, і таким чином може розшифрувати його. Користувальницька інсталяція ffmeg повинна мати змогу прочитати власну послідовність зображень JPEG2000 MJPEG, що міститься всередині зображення MFX. Якщо це допоможе відзначити :)
Bill Rudolph Yaber Russell

Ой, я манекен, я забув видалити перерви "" в командному рядку. У будь-якому випадку, тепер, коли я вводжу вашу пропозицію, цифри показують потокове передавання, але не відкривається вікно, а через 20 секунд він зупиняється на: & lt; br / & gt; & lt; br / & gt; Недолік сегментації: 1136.0 розмір = 138kB час = 00: 00: 00.08 бітрейт = 13445.2kbits / s
Bill Rudolph Yaber Russell

КАРТИНКА СТАВА ТИСЯЧІ СЛОВА - тут, цей зручний відеозапис на екрані показує, що працює, а що ні: dl.dropbox.com/u/11290938/screen_grab_ffdcp_750.mov
Bill Rudolph Yaber Russell

Велике спасибі за відео. Перш за все, ваша перша команда rawvideo має проблему, що ви вказуєте неправильний розмір. Ваш вхід має розмір 500x270 або, принаймні, це те, що введено в систему ffplay. Крім того, ваш вихід має rgb48le у форматі пікселів (через фільтр), але ffplay припускає yuv420p, тому вам також потрібно вказати, що: ffplay -f rawvideo -s 500x270 -pix_fmt rgb48le -. Що стосується segfault: Не знаю ... можливо, ви могли б створити і завантажити невеликий тестовий файл десь?
slhck

Ooo goodie, тестові файли! Дійсно, спасибі. Причина для 500x270 я вказав "lores 2", який скорочує його в розмірі в два рази (щоб поміститися в охайний екран захопити для вас :) Так, здається, я пропустив по одному. В якості фону цей файл - це домашній DCP (подумайте про "цифровий друк фільмів" для кінотеатру, тому засоби масової інформації так дивно), 2K на 1998x1080 (аспект 1,85 квадратних пікселів). При витягуванні послідовності зображень це правильно, і я і подав пакет вчора і вони грали його на DLP в кінотеатрі, де він буде показаний (на одну ніч у фестивалі) - & amp; це було правильно (phew!).
Bill Rudolph Yaber Russell

2
ffmpeg -lowres 2 -ss 0 -r24 -i MOVIE.MOV -ss 0 -i AUDIO.WAV -vf xyz2rgb -ac: 2 -c:v mpeg2video -f avi - | ffplay -

Для моїх цілей це дозволяє швидко огляд змісту DCP (Цифровий пакет кіно) будувати з інструментами з відкритим вихідним кодом . DCP використовує колірний простір xyz, тому потрібно мати встановлено фільтр xyz , інакше ви не можете використовувати його у рядку вище. (Це нормально, він буде виглядати дуже помаранчевим тоном, ви не зможете побачити справжні кольори.)

Я додав mpeg2video кодек b / c, хоча зниження якості, це низька швидкість і буфери трохи, так що він працює більш гладко на моїй машині. (Також, з якоїсь причини, без транскодування спочатку я отримую тільки заморожування кадр з послідовності jpeg2000 mjpeg годування на могутній 125 Мб / с від MXF, якщо я не починаю "- ss 0", тобто на самому початку Файл.) З машиною VERY FAST, не вказавши кодек (видалити "-c: v mpeg2video"), повний розмір ("-лори 0"), і починаючи з 0 (-ss 0), можна теоретично переглянути кіно 2K якість DCP саме так. Ну, крім будь-яких спеціальних інструкцій, що входять до складу XML - субтитрів або інших програм. Але взагалі. (BTW "-ac: 2" downmixes 5.1 до 2.0 - хоча ви можете мати апаратне забезпечення, яке підтримує прослуховування 5.1, у цьому випадку використовуйте "-c: копію".)

Завдяки Маттіасу Бель-Нуіт , і slhck вище для ДЛЯ ПАЦІЄНТАЛЬНО проходячи мене через це. Дякую!!!! Це дуже корисно. І насправді, врятував мене від потенційно незручного показу фільму в театрі Aero в неділю ввечері. Моя нумерація послідовностей зображень була поза послідовністю - знайшла її з цим і виправлена!

Wow, все це тільки для одного командного рядка, який знав;)

Черео - б worldpoop.com


Я отримав цю помилку: немає такого фільтра: 'xyz2rgb'
Dr.jacky
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.