Reputation: 131
I have:
1/ AUDIO.m4a stream
2/ a cover album jpeg
3/ an UTF8 text file
I wish to bind all of them into a mkv/mp4 container.
To bind the audio & image I can
ffmpeg -y -i "AUDIO.mp4" -attach COVER.jpg -metadata:s mimetype="image/jpeg" -c:a copy "AUDIO_COPY_WITH_COVER.mka"
Further to bind the text file
ffmpeg -y -i "AUDIO_COPY_WITH_COVER.mka" -c copy -attach "TEXT.txt" -metadata:s:2 mimetype=application/octet-stream "AUDIO_JPEG_TEXT.mkv"
If I check I get:
Input #0, matroska,webm, from 'AUDIO_JPEG_TEXT.mkv': Metadata: MINOR_VERSION : 512 COMPATIBLE_BRANDS: M4A isomiso2 MAJOR_BRAND : M4A ENCODER : Lavf58.45.100 Duration: 00:36:10.36, start: 0.000000, bitrate: 67 kb/s Stream #0:0: Video: mjpeg (Baseline), yuvj420p(pc, bt470bg/unknown/unknown), 320x240 [SAR 1:1 DAR 4:3], 1k tbr, 1k tbn, 1k tbc (default) Metadata: FILENAME : COVER.jpg MIMETYPE : image/jpeg DURATION : 00:00:00.000000000 Stream #0:1: Audio: aac (HE-AAC), 44100 Hz, stereo, fltp (default) Metadata: HANDLER_NAME : SoundHandler MIMETYPE : image/jpeg DURATION : 00:36:10.358000000 Stream #0:2: Attachment: none Metadata: filename : TEXT.txt mimetype : application/octet-stream
Question:
1/ How do I extract my text file?
ffmpeg -i "AUDIO_JPEG_TEXT.mkv" -map 0:t -metadata:s:2 mimetype=application/octet-stream "my text.txt"
I get the error: Unable to find a suitable output format for 'my text.txt' my text.txt: Invalid argument
**2/If I replace the command with **
ffmpeg -y -i "AUDIO_COPY_WITH_COVER.mka" -c copy -attach "TEXT.txt" -metadata:t:2 mimetype=application/octet-stream "AUDIO_JPEG_TEXT.mkv"
Excuting ffmpeg -i "AUDIO_JPEG_TEXT.mkv"
get error
EBML header parsing failed AUDIO_JPEG_TEXT.mkv: Invalid data found when processing input
2/ How can I write in one command the 3 attachments(audio,img,document)?
Thanks
Upvotes: 1
Views: 2815
Reputation: 93058
To attach in one command,
ffmpeg -y -i "AUDIO.mp4" -attach COVER.jpg -metadata:s:1 mimetype="image/jpeg" -attach "TEXT.txt" -metadata:s:2 mimetype=application/octet-stream -c copy "AUDIO_JPEG_TEXT.mkv"
To extract text,
ffmpeg -dump_attachment:t:0 out.txt -i AUDIO_JPEG_TEXT.mkv
Upvotes: 0