Поэтому я могу перекодировать отдельные видео и аудио файлы в один файл фильма, например, так:
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 -
источник
ffplay
. Кроме того , ваш выход имеет вrgb48le
качестве формата пикселя (из - фильтра), ноffplay
предполагаетyuv420p
, поэтому вам также необходимо указать , что:ffplay -f rawvideo -s 500x270 -pix_fmt rgb48le -
. Что касается segfault: не знаю ... может быть, вы могли бы создать и загрузить небольшой тестовый файл куда-нибудь?Это не перекодирует потоки:
-map 1:1
= второй файл, поток 1 (обычно аудио).-c copy
=-c:v copy -c:a copy
. По умолчанию файл мультиплексирования имеет длину, равную более длинному файлу, но-shortest
его длина будет меньше длины файла.источник
Для моих целей это позволяет быстро просмотреть содержимое DCP (Digital Cinema Package), которое вы можете создать с помощью инструментов с открытым исходным кодом . DCP использует цветовое пространство xyz, поэтому вам необходимо установить видеофильтр xyz , иначе вы не сможете использовать его в строке выше. (Это нормально, он будет выглядеть сильно оранжевым, вы не увидите истинных цветов.)
Я добавил кодек mpeg2video b / c, хотя он снижает качество, снижает скорость передачи и немного буферизирует, поэтому на моей машине он работает более плавно. (Кроме того, по какой-то причине, без предварительного перекодирования, я получаю только стоп-кадр из последовательности jpeg2000 mjpeg, подаваемой со скоростью 125 Мбит / с из MXF, если только я не запускаю «- ss 0», то есть в самом начале файл.) На машине ОЧЕНЬ БЫСТРО, без указания кодека (удаление «-c: v mpeg2video»), полного размера («-lores 0») и начиная с 0 (-ss 0), вы можете теоретически просмотреть фильм 2K Качество DCP точно так же, как есть. Ну, кроме каких-либо специальных инструкций, включенных в XML - субтитры или другое программирование. Но в целом. (Кстати, "-ac: 2" микширует с 5.1 до 2.0 - хотя у вас может быть аппаратное обеспечение, которое поддерживает прослушивание 5.1, в этом случае используйте "-c: копия".)
Благодаря Matthias в Бель-Нут и slhck выше терпеливейше ходить со мной через это. Спасибо!!!! Это довольно полезно. И фактически спас меня от потенциально неловкого показа фильма в Аэро театре в воскресенье вечером. Моя нумерация последовательности изображений была не в порядке - нашел это с этим и исправил!
Ух ты, все это только для одной командной строки, кто бы знал;)
Cheereo - b worldpoop.com
источник