Addresses ticket #11372
Unified · Split
| @@ -116,11 +116,11 @@ A schematic representation of a demuxer looks like this: · 115 unmodified lines | |||
| 116 | @verbatim | 116 | @verbatim |
| 117 | ┌──────────┬───────────────────────┐ | 117 | ┌──────────┬───────────────────────┐ |
| 118 | │ demuxer │ │ packets for stream 0 | 118 | │ demuxer │ │ packets for stream 0 |
| 119 | ╞══════════╡ elementary stream 0 ├──────────────────────⮞ | 119 | ╞══════════╡ elementary stream 0 ├──────────────────────► |
| 120 | │ │ │ | 120 | │ │ │ |
| 121 | │ global ├───────────────────────┤ | 121 | │ global ├───────────────────────┤ |
| 122 | │properties│ │ packets for stream 1 | 122 | │properties│ │ packets for stream 1 |
| 123 | │ and │ elementary stream 1 ├──────────────────────⮞ | 123 | │ and │ elementary stream 1 ├──────────────────────► |
| 124 | │ metadata │ │ | 124 | │ metadata │ │ |
| 125 | │ ├───────────────────────┤ | 125 | │ ├───────────────────────┤ |
| 126 | │ │ │ | 126 | │ │ │ |
| @@ -128,10 +128,10 @@ A schematic representation of a demuxer looks like this: · 1 unmodified line | |||
| 128 | │ │ │ | 128 | │ │ │ |
| 129 | │ ├───────────────────────┤ | 129 | │ ├───────────────────────┤ |
| 130 | │ │ │ packets for stream N | 130 | │ │ │ packets for stream N |
| 131 | │ │ elementary stream N ├──────────────────────⮞ | 131 | │ │ elementary stream N ├──────────────────────► |
| 132 | │ │ │ | 132 | │ │ │ |
| 133 | └──────────┴───────────────────────┘ | 133 | └──────────┴───────────────────────┘ |
| 134 | ⯅ | 134 | ▲ |
| 135 | │ | 135 | │ |
| 136 | │ read from file, network stream, | 136 | │ read from file, network stream, |
| 137 | │ grabbing device, etc. | 137 | │ grabbing device, etc. |
| @@ -149,7 +149,7 @@ A schematic representation of a decoder looks like this: · 11 unmodified lines | |||
| 149 | @verbatim | 149 | @verbatim |
| 150 | ┌─────────┐ | 150 | ┌─────────┐ |
| 151 | packets │ │ raw frames | 151 | packets │ │ raw frames |
| 152 | ─────────⮞│ decoder ├────────────⮞ | 152 | ─────────►│ decoder ├────────────► |
| 153 | │ │ | 153 | │ │ |
| 154 | └─────────┘ | 154 | └─────────┘ |
| 155 | @end verbatim | 155 | @end verbatim |
| @@ -174,7 +174,7 @@ this: · 18 unmodified lines | |||
| 174 | │ simple filtergraph │ | 174 | │ simple filtergraph │ |
| 175 | frames from ╞════════════════════════╡ frames for | 175 | frames from ╞════════════════════════╡ frames for |
| 176 | a decoder │ ┌───────┐ ┌───────┐ │ an encoder | 176 | a decoder │ ┌───────┐ ┌───────┐ │ an encoder |
| 177 | ────────────⮞├─⮞│ yadif ├─⮞│ scale ├─⮞│────────────⮞ | 177 | ────────────►├─►│ yadif ├─►│ scale ├─►│────────────► |
| 178 | │ └───────┘ └───────┘ │ | 178 | │ └───────┘ └───────┘ │ |
| 179 | └────────────────────────┘ | 179 | └────────────────────────┘ |
| 180 | @end verbatim | 180 | @end verbatim |
| @@ -192,13 +192,13 @@ The following example diagram represents a complex filtergraph with 3 inputs and · 11 unmodified lines | |||
| 192 | │ complex filtergraph │ | 192 | │ complex filtergraph │ |
| 193 | ╞═════════════════════════════════════════════════╡ | 193 | ╞═════════════════════════════════════════════════╡ |
| 194 | frames ├───────┐ ┌─────────┐ ┌─────────┐ ┌────────┤ frames | 194 | frames ├───────┐ ┌─────────┐ ┌─────────┐ ┌────────┤ frames |
| 195 | ─────────⮞│input 0├─⮞│ overlay ├─────⮞│ overlay ├─⮞│output 0├────────⮞ | 195 | ─────────►│input 0├─►│ overlay ├─────►│ overlay ├─►│output 0├────────► |
| 196 | ├───────┘ │ │ │ │ └────────┤ | 196 | ├───────┘ │ │ │ │ └────────┤ |
| 197 | frames ├───────┐╭⮞│ │ ╭⮞│ │ │ | 197 | frames ├───────┐╭►│ │ ╭►│ │ │ |
| 198 | ─────────⮞│input 1├╯ └─────────┘ │ └─────────┘ │ | 198 | ─────────►│input 1├╯ └─────────┘ │ └─────────┘ │ |
| 199 | ├───────┘ │ │ | 199 | ├───────┘ │ │ |
| 200 | frames ├───────┐ ┌─────┐ ┌─────┬─╯ ┌────────┤ frames | 200 | frames ├───────┐ ┌─────┐ ┌─────┬─╯ ┌────────┤ frames |
| 201 | ─────────⮞│input 2├⮞│scale├⮞│split├───────────────⮞│output 1├────────⮞ | 201 | ─────────►│input 2├►│scale├►│split├───────────────►│output 1├────────► |
| 202 | ├───────┘ └─────┘ └─────┘ └────────┤ | 202 | ├───────┘ └─────┘ └─────┘ └────────┤ |
| 203 | └─────────────────────────────────────────────────┘ | 203 | └─────────────────────────────────────────────────┘ |
| 204 | @end verbatim | 204 | @end verbatim |
| @@ -222,7 +222,7 @@ A schematic representation of an encoder looks like this: · 17 unmodified lines | |||
| 222 | @verbatim | 222 | @verbatim |
| 223 | ┌─────────┐ | 223 | ┌─────────┐ |
| 224 | raw frames │ │ packets | 224 | raw frames │ │ packets |
| 225 | ────────────⮞│ encoder ├─────────⮞ | 225 | ────────────►│ encoder ├─────────► |
| 226 | │ │ | 226 | │ │ |
| 227 | └─────────┘ | 227 | └─────────┘ |
| 228 | @end verbatim | 228 | @end verbatim |
| @@ -238,11 +238,11 @@ A schematic representation of a muxer looks like this: · 9 unmodified lines | |||
| 238 | @verbatim | 238 | @verbatim |
| 239 | ┌──────────────────────┬───────────┐ | 239 | ┌──────────────────────┬───────────┐ |
| 240 | packets for stream 0 │ │ muxer │ | 240 | packets for stream 0 │ │ muxer │ |
| 241 | ──────────────────────⮞│ elementary stream 0 ╞═══════════╡ | 241 | ──────────────────────►│ elementary stream 0 ╞═══════════╡ |
| 242 | │ │ │ | 242 | │ │ │ |
| 243 | ├──────────────────────┤ global │ | 243 | ├──────────────────────┤ global │ |
| 244 | packets for stream 1 │ │properties │ | 244 | packets for stream 1 │ │properties │ |
| 245 | ──────────────────────⮞│ elementary stream 1 │ and │ | 245 | ──────────────────────►│ elementary stream 1 │ and │ |
| 246 | │ │ metadata │ | 246 | │ │ metadata │ |
| 247 | ├──────────────────────┤ │ | 247 | ├──────────────────────┤ │ |
| 248 | │ │ │ | 248 | │ │ │ |
| @@ -250,7 +250,7 @@ A schematic representation of a muxer looks like this: · 1 unmodified line | |||
| 250 | │ │ │ | 250 | │ │ │ |
| 251 | ├──────────────────────┤ │ | 251 | ├──────────────────────┤ │ |
| 252 | packets for stream N │ │ │ | 252 | packets for stream N │ │ │ |
| 253 | ──────────────────────⮞│ elementary stream N │ │ | 253 | ──────────────────────►│ elementary stream N │ │ |
| 254 | │ │ │ | 254 | │ │ │ |
| 255 | └──────────────────────┴─────┬─────┘ | 255 | └──────────────────────┴─────┬─────┘ |
| 256 | │ | 256 | │ |
| @@ -276,7 +276,7 @@ such a pipeline looks like this: · 19 unmodified lines | |||
| 276 | │ │ │ | 276 | │ │ │ |
| 277 | │INPUT.mkv ├─────────────────────┤ ┌──────────────────────┬───────────┐ | 277 | │INPUT.mkv ├─────────────────────┤ ┌──────────────────────┬───────────┐ |
| 278 | │ │ │ packets │ │ muxer │ | 278 | │ │ │ packets │ │ muxer │ |
| 279 | │ │ elementary stream 1 ├─────────⮞│ elementary stream 0 ╞═══════════╡ | 279 | │ │ elementary stream 1 ├─────────►│ elementary stream 0 ╞═══════════╡ |
| 280 | │ │ │ │ │OUTPUT.mp4 │ | 280 | │ │ │ │ │OUTPUT.mp4 │ |
| 281 | │ ├─────────────────────┤ └──────────────────────┴───────────┘ | 281 | │ ├─────────────────────┤ └──────────────────────┴───────────┘ |
| 282 | │ │ │ unused | 282 | │ │ │ unused |
| @@ -329,12 +329,12 @@ from two input files into a single output: · 46 unmodified lines | |||
| 329 | @verbatim | 329 | @verbatim |
| 330 | ┌──────────┬────────────────────┐ ┌────────────────────┬───────────┐ | 330 | ┌──────────┬────────────────────┐ ┌────────────────────┬───────────┐ |
| 331 | │ demuxer 0│ │ packets │ │ muxer │ | 331 | │ demuxer 0│ │ packets │ │ muxer │ |
| 332 | ╞══════════╡elementary stream 0 ├────────⮞│elementary stream 0 ╞═══════════╡ | 332 | ╞══════════╡elementary stream 0 ├────────►│elementary stream 0 ╞═══════════╡ |
| 333 | │INPUT0.mkv│ │ │ │OUTPUT.mp4 │ | 333 | │INPUT0.mkv│ │ │ │OUTPUT.mp4 │ |
| 334 | └──────────┴────────────────────┘ ├────────────────────┤ │ | 334 | └──────────┴────────────────────┘ ├────────────────────┤ │ |
| 335 | ┌──────────┬────────────────────┐ │ │ │ | 335 | ┌──────────┬────────────────────┐ │ │ │ |
| 336 | │ demuxer 1│ │ packets │elementary stream 1 │ │ | 336 | │ demuxer 1│ │ packets │elementary stream 1 │ │ |
| 337 | ╞══════════╡elementary stream 0 ├────────⮞│ │ │ | 337 | ╞══════════╡elementary stream 0 ├────────►│ │ │ |
| 338 | │INPUT1.aac│ │ └────────────────────┴───────────┘ | 338 | │INPUT1.aac│ │ └────────────────────┴───────────┘ |
| 339 | └──────────┴────────────────────┘ | 339 | └──────────┴────────────────────┘ |
| 340 | @end verbatim | 340 | @end verbatim |
| @@ -355,11 +355,11 @@ multiple outputs: · 14 unmodified lines | |||
| 355 | @verbatim | 355 | @verbatim |
| 356 | ┌──────────┬─────────────────────┐ ┌───────────────────┬───────────┐ | 356 | ┌──────────┬─────────────────────┐ ┌───────────────────┬───────────┐ |
| 357 | │ demuxer │ │ packets │ │ muxer 0 │ | 357 | │ demuxer │ │ packets │ │ muxer 0 │ |
| 358 | ╞══════════╡ elementary stream 0 ├─────────⮞│elementary stream 0╞═══════════╡ | 358 | ╞══════════╡ elementary stream 0 ├─────────►│elementary stream 0╞═══════════╡ |
| 359 | │ │ │ │ │OUTPUT0.mp4│ | 359 | │ │ │ │ │OUTPUT0.mp4│ |
| 360 | │INPUT.mkv ├─────────────────────┤ └───────────────────┴───────────┘ | 360 | │INPUT.mkv ├─────────────────────┤ └───────────────────┴───────────┘ |
| 361 | │ │ │ packets ┌───────────────────┬───────────┐ | 361 | │ │ │ packets ┌───────────────────┬───────────┐ |
| 362 | │ │ elementary stream 1 ├─────────⮞│ │ muxer 1 │ | 362 | │ │ elementary stream 1 ├─────────►│ │ muxer 1 │ |
| 363 | │ │ │ │elementary stream 0╞═══════════╡ | 363 | │ │ │ │elementary stream 0╞═══════════╡ |
| 364 | └──────────┴─────────────────────┘ │ │OUTPUT1.mp4│ | 364 | └──────────┴─────────────────────┘ │ │OUTPUT1.mp4│ |
| 365 | └───────────────────┴───────────┘ | 365 | └───────────────────┴───────────┘ |
| @@ -404,18 +404,18 @@ file. This can be schematically represented as follows · 38 unmodified lines | |||
| 404 | │ │ │ │ | 404 | │ │ │ │ |
| 405 | │INPUT.mkv ├─────────────────────┤ video ┌─────────┐ raw │ | 405 | │INPUT.mkv ├─────────────────────┤ video ┌─────────┐ raw │ |
| 406 | │ │ │ packets │ video │ video frames │ | 406 | │ │ │ packets │ video │ video frames │ |
| 407 | │ │ stream 1 (video) ├─────────⮞│ decoder ├──────────────╮ │ | 407 | │ │ stream 1 (video) ├─────────►│ decoder ├──────────────╮ │ |
| 408 | │ │ │ │ │ │ │ | 408 | │ │ │ │ │ │ │ |
| 409 | └──────────┴─────────────────────┘ └─────────┘ │ │ | 409 | └──────────┴─────────────────────┘ └─────────┘ │ │ |
| 410 | ▼ ▼ | 410 | ▼ ▼ |
| 411 | │ │ | 411 | │ │ |
| 412 | ┌──────────┬─────────────────────┐ video ┌─────────┐ │ │ | 412 | ┌──────────┬─────────────────────┐ video ┌─────────┐ │ │ |
| 413 | │ muxer │ │ packets │ video │ │ │ | 413 | │ muxer │ │ packets │ video │ │ │ |
| 414 | ╞══════════╡ stream 0 (video) │⮜─────────┤ encoder ├──────────────╯ │ | 414 | ╞══════════╡ stream 0 (video) │◄─────────┤ encoder ├──────────────╯ │ |
| 415 | │ │ │ │(libx264)│ │ | 415 | │ │ │ │(libx264)│ │ |
| 416 | │OUTPUT.mp4├─────────────────────┤ └─────────┘ │ | 416 | │OUTPUT.mp4├─────────────────────┤ └─────────┘ │ |
| 417 | │ │ │ │ | 417 | │ │ │ │ |
| 418 | │ │ stream 1 (audio) │⮜────────────────────────────────────╯ | 418 | │ │ stream 1 (audio) │◄────────────────────────────────────╯ |
| 419 | │ │ │ | 419 | │ │ │ |
| 420 | └──────────┴─────────────────────┘ | 420 | └──────────┴─────────────────────┘ |
| 421 | @end verbatim | 421 | @end verbatim |
| @@ -449,22 +449,22 @@ for clarity) makes it look like this: · 27 unmodified lines | |||
| 449 | ┌──────────┬───────────────┐ | 449 | ┌──────────┬───────────────┐ |
| 450 | │ demuxer │ │ ┌─────────┐ | 450 | │ demuxer │ │ ┌─────────┐ |
| 451 | ╞══════════╡ video stream │ packets │ video │ frames | 451 | ╞══════════╡ video stream │ packets │ video │ frames |
| 452 | │INPUT.mkv │ ├─────────⮞│ decoder ├─────⮞───╮ | 452 | │INPUT.mkv │ ├─────────►│ decoder ├─────►───╮ |
| 453 | │ │ │ └─────────┘ │ | 453 | │ │ │ └─────────┘ │ |
| 454 | └──────────┴───────────────┘ │ | 454 | └──────────┴───────────────┘ │ |
| 455 | ╭───────────⮜───────────╯ | 455 | ╭───────────◄───────────╯ |
| 456 | │ ┌────────────────────────┐ | 456 | │ ┌────────────────────────┐ |
| 457 | │ │ simple filtergraph │ | 457 | │ │ simple filtergraph │ |
| 458 | │ ╞════════════════════════╡ | 458 | │ ╞════════════════════════╡ |
| 459 | │ │ ┌───────┐ ┌───────┐ │ | 459 | │ │ ┌───────┐ ┌───────┐ │ |
| 460 | ╰──⮞├─⮞│ yadif ├─⮞│ scale ├─⮞├╮ | 460 | ╰──►├─►│ yadif ├─►│ scale ├─►├╮ |
| 461 | │ └───────┘ └───────┘ ││ | 461 | │ └───────┘ └───────┘ ││ |
| 462 | └────────────────────────┘│ | 462 | └────────────────────────┘│ |
| 463 | │ | 463 | │ |
| 464 | │ | 464 | │ |
| 465 | ┌──────────┬───────────────┐ video ┌─────────┐ │ | 465 | ┌──────────┬───────────────┐ video ┌─────────┐ │ |
| 466 | │ muxer │ │ packets │ video │ │ | 466 | │ muxer │ │ packets │ video │ │ |
| 467 | ╞══════════╡ video stream │⮜─────────┤ encoder ├───────⮜───────╯ | 467 | ╞══════════╡ video stream │◄─────────┤ encoder ├───────◄───────╯ |
| 468 | │OUTPUT.mp4│ │ │ │ | 468 | │OUTPUT.mp4│ │ │ │ |
| 469 | │ │ │ └─────────┘ | 469 | │ │ │ └─────────┘ |
| 470 | └──────────┴───────────────┘ | 470 | └──────────┴───────────────┘ |
| @@ -531,12 +531,12 @@ Such a transcoding pipeline can be represented with the following diagram: · 60 unmodified lines | |||
| 531 | ┌──────────┬───────────────┐ | 531 | ┌──────────┬───────────────┐ |
| 532 | │ demuxer │ │ ┌─────────┐ ┌─────────┐ ┌────────────────────┐ | 532 | │ demuxer │ │ ┌─────────┐ ┌─────────┐ ┌────────────────────┐ |
| 533 | ╞══════════╡ video stream │ │ video │ │ video │ │ null muxer │ | 533 | ╞══════════╡ video stream │ │ video │ │ video │ │ null muxer │ |
| 534 | │ INPUT │ ├──⮞│ decoder ├──┬────────⮞│ encoder ├─┬─⮞│(discards its input)│ | 534 | │ INPUT │ ├──►│ decoder ├──┬────────►│ encoder ├─┬─►│(discards its input)│ |
| 535 | │ │ │ └─────────┘ │ │(libx264)│ │ └────────────────────┘ | 535 | │ │ │ └─────────┘ │ │(libx264)│ │ └────────────────────┘ |
| 536 | └──────────┴───────────────┘ │ └─────────┘ │ | 536 | └──────────┴───────────────┘ │ └─────────┘ │ |
| 537 | ╭───────⮜──╯ ┌─────────┐ │ | 537 | ╭───────◄──╯ ┌─────────┐ │ |
| 538 | │ │loopback │ │ | 538 | │ │loopback │ │ |
| 539 | │ ╭─────⮜──────┤ decoder ├────⮜──╯ | 539 | │ ╭─────◄──────┤ decoder ├────◄──╯ |
| 540 | │ │ └─────────┘ | 540 | │ │ └─────────┘ |
| 541 | │ │ | 541 | │ │ |
| 542 | │ │ | 542 | │ │ |
| @@ -544,14 +544,14 @@ Such a transcoding pipeline can be represented with the following diagram: · 1 unmodified line | |||
| 544 | │ │ │complex filtergraph│ | 544 | │ │ │complex filtergraph│ |
| 545 | │ │ ╞═══════════════════╡ | 545 | │ │ ╞═══════════════════╡ |
| 546 | │ │ │ ┌─────────────┐ │ | 546 | │ │ │ ┌─────────────┐ │ |
| 547 | ╰─╫─⮞├─⮞│ hstack ├─⮞├╮ | 547 | ╰─╫─►├─►│ hstack ├─►├╮ |
| 548 | ╰─⮞├─⮞│ │ ││ | 548 | ╰─►├─►│ │ ││ |
| 549 | │ └─────────────┘ ││ | 549 | │ └─────────────┘ ││ |
| 550 | └───────────────────┘│ | 550 | └───────────────────┘│ |
| 551 | │ | 551 | │ |
| 552 | ┌──────────┬───────────────┐ ┌─────────┐ │ | 552 | ┌──────────┬───────────────┐ ┌─────────┐ │ |
| 553 | │ muxer │ │ │ video │ │ | 553 | │ muxer │ │ │ video │ │ |
| 554 | ╞══════════╡ video stream │⮜─┤ encoder ├───────⮜──────────╯ | 554 | ╞══════════╡ video stream │◄─┤ encoder ├───────◄──────────╯ |
| 555 | │ OUTPUT │ │ │ (ffv1) │ | 555 | │ OUTPUT │ │ │ (ffv1) │ |
| 556 | │ │ │ └─────────┘ | 556 | │ │ │ └─────────┘ |
| 557 | └──────────┴───────────────┘ | 557 | └──────────┴───────────────┘ |