zum Beispiel unter Fedora 16
siehe auch: http://tinkerance.blogspot.ch/2012/11/getting-ffmpeg-to-work-with-libfaac-on.html
su yumdownloader --source ffmpeg rpm -ivh ffmpeg-0.8.12-1.fc16.src.rpm yum install celt-devel libass-devel libcdio-devel libmodplug-devel libv4l-devel \ libXvMC-devel openal-soft-devel openjpeg-devel pulseaudio-libs-devel yum install bzip2-devel dirac-devel faac-devel gsm-devel lame-devel libdc1394-devel \ librtmp-devel libtheora-devel libva-devel libvdpau-devel libvorbis-devel libvpx-devel \ schroedinger-devel SDL-devel speex-devel texi2html x264-devel xvidcore-devel yasm rpmbuild -ba ~/rpmbuild/SPECS/ffmpeg.spec --with faac
oder in vi ~/rpmbuild/SPECS/ffmpeg.spec
—enable-libfaac \\
—enable-nonfree \\
rpm -Uhv /root/rpmbuild/RPMS/i686/ffmpeg-libs-0.8.12-1.fc16.i686.rpm rpm -Uhv /root/rpmbuild/RPMS/i686/ffmpeg-0.8.12-1.fc16.i686.rpm
Die Beispieldatei, die im weiteren Verlauf dieses kurzen Artikels verwendet wird, weist folgende Eigenschaften auf: 1 Videokanal, 4 Audiokanäle und 1 Untertitelkanal.
ffmpeg -i VTS_06_1.VOB
Input #0, mpeg, from 'VTS_06_1.VOB':
Duration: 00:37:32.70, start: 0.049756, bitrate: 3813 kb/s
Stream #0.0[0x1e0]: Video: mpeg2video (Main), yuv420p, 720x576 [PAR 64:45 DAR 16:9], 9800 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0.1[0x83]: Audio: ac3, 48000 Hz, stereo, s16, 192 kb/s
Stream #0.2[0x82]: Audio: ac3, 48000 Hz, stereo, s16, 192 kb/s
Stream #0.3[0x81]: Audio: ac3, 48000 Hz, 5.1, s16, 448 kb/s
Stream #0.4[0x80]: Audio: ac3, 48000 Hz, 5.1, s16, 448 kb/s
Stream #0.5[0x24]: Subtitle: dvdsub
Die Voreinstellungen (presets) von ffmpeg befinden sich in /usr/share/ffmpeg. Neuere Versionen als 0.8.2 von ffmpeg kennen weitere Voreinstellungen. Sie können z.B. mit -vpre lossless_fast eingebunden werden.
Die verschiedenen Optionen für libx264 finden sich hier: MeGUI/x264 Settings. Weitere Seiten:
NEU: ffmpeg -i input -c:v libx264 -preset baseline Output.mkv
ALT: ffmpeg -i input -vcodec libx264 -vpre baseline Output.mkv
cat VTS_02_1.VOB VTS_02_2.VOB VTS_02_3.VOB VTS_02_4.VOB | \ ffmpeg -i - -acodec libfaac -vcodec libx264 -crf 21 -threads 4 Output.mp4
oder
ffmpeg -i concat:VTS_02_1.VOB\|VTS_02_2.VOB\|VTS_02_3.VOB\|VTS_02_4.VOB \ -acodec libfaac -vcodec libx264 -crf 21 -threads 4 Output.mp4
-crf -> Videoqualität, je kleiner crf ist, desto besser die Qualität (vernünftig zwischen 18-28)
http://ffmpeg.org/trac/ffmpeg/wiki/x264EncodingGuide
http://videoencoding.websmith.de/encoding-praxis/linux-ffmpeg-encoding.html
Wer noch das ältere mp4 verwenden möchte:
cat VTS_02_1.VOB VTS_02_2.VOB VTS_02_3.VOB VTS_02_4.VOB | \ ffmpeg -i - -acodec libfaac -vcodec q -metadata title="Titel des Films" Output.mp4
Mapping channels: http://howto-pages.org/ffmpeg/#map
ffmpeg -i concat:VTS_06_1.VOB\|VTS_06_2.VOB -vcodec libx264 -crf 21 \ -acodec libfaac -threads 4 -scodec copy \ -metadata title="Titel des Films" \ Output.mkv -map 0.0 -map 0.3 -map 0.5 -map 0.4 -newaudio
ffmpeg -i Input.VOB -vcodec copy -acodec copy Output.mkv -map 0.3 -map 0.4 -newaudio
ffmpeg -i Input.VOB -vcodec copy -acodec copy -scodec copy Output.mkv \ -map 0.3 -map 0.4 -map 0.5 -newaudio
ffmpeg -i Film-mit-Metadaten.mp4 -map_metadata -1 \ -c:v copy -c:a copy Film-ohne-Metadaten.mp4
ffmpeg -i Film.wmv -c:v libx264 -crf 23 -strict -2 Film.mp4
(Die Option -strict -2 wird evtl. benötigt damit mit .h264 nach mp4 konvertiert werden kann.) Oder auch mit Angaben zur Audiokodierung:
ffmpeg -i Film.wmv -c:v libx264 -crf 23 -c:a libfaac -q:a 100 Film.mp4
Input-Teil1.avi und Input-Teil2.avi im aktuellen Verzeichnis, sonst ./ mit dem Pfad ersetzen. Es kann jedes beliebige Videoformat (besser: Container) benutzt werden, das ffmpeg kennt:
echo "file './Input-Teil1.avi'" >Liste.txt echo "file './Input-Teil2.avi'" >>Liste.txt ffmpeg -f concat -i Liste.txt -c copy Output.avi
oder direkt:
ffmpeg -i concat:Input-Teil1.mp4\|Input-Teil2.mp4 -c copy Output.mp4
alternativ mit avimerge oder menconder:
yum install transcode mencoder avimerge -i Input-Teil1.avi Input-Teil2.avi -o Output.avi mencoder -ovc copy -oac copy Input-Teil?.mp4 -o Output.mp4
Erst die Software dazu installieren:
yum install subtitleripper
Die Dateien sind Film-A-Teil-1.avi mit Film-A-Teil-1.srt und Film-A-Teil-2.avi mit Film-A-Teil-2.srt. Ziel ist Film-A mit Film-A.srt
Die Länge des 1. Teils finden:
ffmpeg -i Input-Teil-1.avi
…
Duration: 01:04:12.43, start: 0.000000, bitrate: 1499 kb/s
…
Dann die Texte des 2. Untertitels um diese Dauer verschieben. Es kann sein, dass man die Zeitangaben etwas anpassen muss. Man kontrolliert am Schluss das Ergebnis ab dem angefügten Teil, ob ab dann die Untertitel noch zu den Stimmen passen:
srttool -a 01:04:23,43 -i Input-Teil-2.srt > Input-Teil-2neu.srt
Teil 1 und 2 zusammenfügen und anschliessend die Untertitel darin neu ordnen. Die beiden Filmteile hat man gemäss obigen Angaben bereits zu Output.mp4 (oder .avi) zusammengefügt:
cat Input-Teil-1.srt Input-Teil-2neu.srt > Output-tmp.srt srttool -r -i Output-tmp.srt > Output.srt
Weiteres zu Untertiteln siehe: http://virtuallyhyper.com/2013/09/combine-vobsub-subidx-format-subtitles-single-subrip-srt-format-file/