Немонотонное DTS в выходном потоке, предыдущее текущее изменение которого на Это может привести к неправильным временным меткам в выходном файле - PullRequest
0 голосов
/ 27 октября 2018

У меня файл file.txt с довольно близкими фрагментами

file 'input.mp4'
inpoint 1.5402465510368346
outpoint 2.722609395980835
file 'input.mp4'
inpoint 3.192511146068573
outpoint 7.074568028450012
file 'input.mp4'
inpoint 7.851800565719604
outpoint 9.023683423995971
file 'input.mp4'
inpoint 10.054571752548219
outpoint 12.008032734394073
file 'input.mp4'
inpoint 18.70977670431137
outpoint 21.20993923664093
file 'input.mp4'
inpoint 24.51183382153511
outpoint 26.465287650823594
...

Я согласен с ними

ffmpeg -safe 0 -f concat -i file.txt out.mp4

и я попробовал

ffmpeg -use_wallclock_as_timestamps 1 -safe 0 -f concat -i file.txt out.mp4

Все же я получаю

[mp4 @ 00000178c514cc00] Non-monotonous DTS in output stream 0:1; previous: 2069, current: 2067; changing to 2070. This may result in incorrect timestamps in the output file.
[mp4 @ 00000178c514cc00] Non-monotonous DTS in output stream 0:1; previous: 2070, current: 2067; changing to 2071. This may result in incorrect timestamps in the output file.
[mp4 @ 00000178c514cc00] Non-monotonous DTS in output stream 0:1; previous: 2071, current: 2067; changing to 2072. This may result in incorrect timestamps in the output file.
[aac @ 00000178c50f8a80] Queue input is backward in time
[mp4 @ 00000178c514cc00] Non-monotonous DTS in output stream 0:1; previous: 2758, current: 2756; changing to 2759. This may result in incorrect timestamps in the output file.
[aac @ 00000178c50f8a80] Queue input is backward in time
    Last message repeated 5 times
[mp4 @ 00000178c514cc00] Non-monotonous DTS in output stream 0:1; previous: 7581, current: 7579; changing to 7582. This may result in incorrect timestamps in the output file.
[aac @ 00000178c50f8a80] Queue input is backward in time
[mp4 @ 00000178c514cc00] Non-monotonous DTS in output stream 0:1; previous: 7582, current: 7579; changing to 7583. This may result in incorrect timestamps in the output file.
[aac @ 00000178c50f8a80] Queue input is backward in time
[mp4 @ 00000178c514cc00] Non-monotonous DTS in output stream 0:1; previous: 7583, current: 7579; changing to 7584. This may result in incorrect timestamps in the output file.
[aac @ 00000178c50f8a80] Queue input is backward in time
[mp4 @ 00000178c514cc00] Non-monotonous DTS in output stream 0:1; previous: 7584, current: 7579; changing to 7585. This may result in incorrect timestamps in the output file.
[aac @ 00000178c50f8a80] Queue input is backward in time
[mp4 @ 00000178c514cc00] Non-monotonous DTS in output stream 0:1; previous: 7585, current: 7579; changing to 7586. This may result in incorrect timestamps in the output file.
[aac @ 00000178c50f8a80] Queue input is backward in time
[mp4 @ 00000178c514cc00] Non-monotonous DTS in output stream 0:1; previous: 7586, current: 7579; changing to 7587. This may result in incorrect timestamps in the output file.
[aac @ 00000178c50f8a80] Queue input is backward in time
[mp4 @ 00000178c514cc00] Non-monotonous DTS in output stream 0:1; previous: 7587, current: 7579; changing to 7588. This may result in incorrect timestamps in the output file.
[aac @ 00000178c50f8a80] Queue input is backward in time
[mp4 @ 00000178c514cc00] Non-monotonous DTS in output stream 0:1; previous: 7588, current: 7579; changing to 7589. This may result in incorrect timestamps in the output file.
[mp4 @ 00000178c514cc00] Non-monotonous DTS in output stream 0:1; previous: 7589, current: 7579; changing to 7590. This may result in incorrect timestamps in the output file.
[aac @ 00000178c50f8a80] Queue input is backward in time
[mp4 @ 00000178c514cc00] Non-monotonous DTS in output stream 0:1; previous: 7590, current: 7579; changing to 7591. This may result in incorrect timestamps in the output file.
[aac @ 00000178c50f8a80] Queue input is backward in time

И окончательный файл обрезается в неправильных местах.

Как заставить файл file.txt работать?

... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .... .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .... .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .... .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .... .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. . ... ...

1 Ответ

0 голосов
/ 27 октября 2018

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

ffmpeg -safe 0 -f concat -segment_time_metadata 1 -i file.txt -vf select=concatdec_select -af aselect=concatdec_select,aresample=async=1 out.mp4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...