[FFmpeg-cvslog] r9176 - trunk/doc/faq.texi
victor
subversion
Sat Jun 2 23:50:45 CEST 2007
Author: victor
Date: Sat Jun 2 23:50:45 2007
New Revision: 9176
Log:
?Add FAQ entry for video joining
patch by V?ctor Paesa, wzrlpy dontuseme arsystel com
Modified:
trunk/doc/faq.texi
Modified: trunk/doc/faq.texi
==============================================================================
--- trunk/doc/faq.texi (original)
+++ trunk/doc/faq.texi Sat Jun 2 23:50:45 2007
@@ -250,6 +250,63 @@ not what you use to play it.
that it is related to FFmpeg.
@end itemize
+ at section How can I join video files?
+
+A few multimedia containers (MPEG1, MPEG2 PS, DV) allow to join video files by
+merely concatenating them.
+
+Hence you may concatenate your multimedia files by first transcoding them to
+these privileged formats, then using the humble @code{cat} command (or the
+equally humble @code{copy} under Win32), and finally transcoding back to your
+format of choice.
+
+ at example
+ffmpeg -i input1.avi -sameq intermediate1.mpg
+ffmpeg -i input2.avi -sameq intermediate2.mpg
+cat intermediate1.mpg intermediate2.mpg > intermediate_all.mpg
+ffmpeg -i intermediate_all.mpg -sameq output.avi
+ at end example
+
+Notice that you should either use @code{-sameq} or set a reasonably high
+bitrate for your intermediate and output files, if you want to preserve
+video quality.
+
+Notice too that you may avoid the huge intermediate files by taking advantage
+of named pipes, should your platform support it:
+
+ at example
+mkfifo intermediate1.mpg
+mkfifo intermediate2.mpg
+ffmpeg -i input1.avi -sameq -y intermediate1.mpg < /dev/null &
+ffmpeg -i input2.avi -sameq -y intermediate2.mpg < /dev/null &
+cat intermediate1.mpg intermediate2.mpg |\
+ffmpeg -f mpeg -i - -sameq -vcodec mpeg4 -acodec mp3 output.avi
+ at end example
+
+Similarly, the yuv4mpegpipe format, and the raw video, raw audio codecs also
+allow concatenation, and the transcoding step is almost lossless.
+
+For example, let's say we want to join two FLV files into an output.flv file:
+
+ at example
+mkfifo temp1.a
+mkfifo temp1.v
+mkfifo temp2.a
+mkfifo temp2.v
+mkfifo all.a
+mkfifo all.v
+ffmpeg -i input1.flv -vn -f u16le -acodec pcm_s16le -ac 2 -ar 44100 - > temp1.a < /dev/null &
+ffmpeg -i input2.flv -vn -f u16le -acodec pcm_s16le -ac 2 -ar 44100 - > temp2.a < /dev/null &
+ffmpeg -i input1.flv -an -f yuv4mpegpipe - > temp1.v < /dev/null &
+ffmpeg -i input2.flv -an -f yuv4mpegpipe - > temp2.v < /dev/null &
+cat temp1.a temp2.a > all.a &
+cat temp1.v temp2.v > all.v &
+ffmpeg -f u16le -acodec pcm_s16le -ac 2 -ar 44100 -i all.a \
+ -f yuv4mpegpipe -i all.v \
+ -sameq -y output.flv
+rm temp[12].[av] all.[av]
+ at end example
+
@chapter Development
@section When will the next FFmpeg version be released? / Why are FFmpeg releases so few and far between?
More information about the ffmpeg-cvslog
mailing list