#10623: Metadata is written at the end of the process, making piped output miss
metadata
-------------------------------------+-------------------------------------
Reporter: vortex | Type: defect
Status: new | Priority: normal
Component: ffmpeg | Version: git-
Keywords: pipe | master
matroska -map | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
I use ffmpeg to modify (convert, copy or remove) some subtitles on mkv
files. The data is piped through stdin and stdout using this command:
{{{
% ffmpeg -i pipe:0 -map 0:a -c:a copy -map 0:v -c:v copy -map 0:s? -c:s:0
subrip -c:s:1 copy -hide_banner -loglevel warning -stats -f matroska
pipe:1
}}}
The result I get from stdout is missing metadata.
So I tried to let ffmpeg write the output to a file and I was reading the
file asynchronously while it was still be written.
{{{
% ffmpeg -i pipe:0 -map 0:a -c:a copy -map 0:v -c:v copy -map 0:s? -c:s:0
subrip -c:s:1 copy -hide_banner -loglevel warning -stats -f matroska
out.mkv
}}}
I notified the metadata in the asynchronously read file was still missing,
but the final output file had the metadata. I binary compared them and
they were mostly identical, but differed from address 0x300D to 0x700C (I
guess this is part the metadata).
So it looks like ffmpeg writes the metadata at the end of processing which
does not work well with pipes.
I also tried to build ffmpeg from master branch (commit 5ddabd49d) and use
it, but the problem persisted.
Is this a bug or are my ffmpeg commandline args not optimal?
--
Ticket URL: <https://trac.ffmpeg.org/ticket/10623>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
_______________________________________________
FFmpeg-trac mailing list
FFmpeg-trac@avcodec.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-trac
To unsubscribe, visit link above, or email
ffmpeg-trac-requ...@ffmpeg.org with subject "unsubscribe".