Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
|
becki:linux:multimedia [2015-12-14 20:40] becki [Extract a section] |
becki:linux:multimedia [2018-09-15 08:03] (aktuell) becki [Encode to x264] |
||
|---|---|---|---|
| Zeile 3: | Zeile 3: | ||
| Infos about howto play, edit and stream audio and video | Infos about howto play, edit and stream audio and video | ||
| - | ===== Play internet radio streams on the command line == | + | ===== Internet Radio == |
| + | ==== Play internet radio streams on the command line == | ||
| - | Use ''soma'' | + | Use ''soma'' or ''mplayer'' |
| - | ===== Record internet radio streams to a file == | + | ==== Record internet radio streams to a file == |
| Just use ''curl''. The resulting file is playable with common players like mplayer, xine or vlc | Just use ''curl''. The resulting file is playable with common players like mplayer, xine or vlc | ||
| - | ===== Audo and video editing with ffmpeg == | + | ===== Audo and video editing tools == |
| - | ==== Install on Slack == | + | ==== ffmpeg == |
| + | === Install == | ||
| - | Download from slackbuilds and build it as root using ''su -'', not only ''su''. Otherwise the build will fail becaus it can't find ''texi2html''. | + | To install on Slack, download from slackbuilds and build it as root using ''su -'', not only ''su''. Otherwise the build will fail because it can't find ''texi2html''. |
| - | ==== Extract a section == | + | Recommended optional packages for ffmpeg: |
| + | <code> | ||
| + | ffmpeg | ||
| + | libass | ||
| + | faac | ||
| + | libmp4v2 | ||
| + | lame | ||
| + | x264 | ||
| + | [x265] | ||
| + | </code> | ||
| - | This cuts out 61 seconds of all.mp3, starting at 41 min 8 sec from the beginning and writes the section to the file part.mp3. Note that no mp3 encoder is necessary and there is no quality loss. | + | Command to build the package with the optional packages enabled: |
| - | ffmpeg -ss 41:08 -i all.mp3 -codec copy -t 61 part.mp3 | + | ASS=yes FAAC=yes LAME=yes X264=yes ./ffmpeg.SlackBuild |
| - | + | ||
| - | This technique works for video as well. | + | |
| - | ==== Concat multiple files == | + | FIXME FAAC seems not necessary any morge as of ffmpeg-3.2.4. Instead try FDK_AAC |
| - | ffmpeg -f concat -i mylist.txt -c copy output | + | Note: To install ffmpeg on a headless server (without X) it may be necessary to install additional stock packages first and to disable some features which are enabled by default (tested): |
| - | See https://trac.ffmpeg.org/wiki/Concatenate for format of ''mylist.txt'' | + | slackpkg install libXi libXtst |
| + | CACA=no OPENGL=no X11GRAB=no ASS=yes FAAC=yes LAME=yes X264=yes ./ffmpeg.SlackBuild | ||
| - | ===== DVD ripping with mencoder == | + | === Docs == |
| - | FIXME work in progress | + | - man ffmpeg |
| + | - https://ffmpeg.org/documentation.html | ||
| + | - https://ffmpeg.org/ffmpeg-all.html | ||
| + | - http://trac.ffmpeg.org/wiki | ||
| + | - https://www.ostechnix.com/20-ffmpeg-commands-beginners/ | ||
| - | ==== Overview == | + | Note that these official docs do not contain hints about DVD ripping. |
| + | |||
| + | ==== mencoder == | ||
| + | === Overview == | ||
| - mencoder uses ffmpeg | - mencoder uses ffmpeg | ||
| Zeile 45: | Zeile 62: | ||
| - A search for ''ffmpeg vs mencoder'' on the web shows that most people recommend mencoder, because it can do more | - A search for ''ffmpeg vs mencoder'' on the web shows that most people recommend mencoder, because it can do more | ||
| - | ==== Unsorted Links == | + | === Install == |
| + | Onboard of Slack. FIXME Probably needs to be recompiled in order to support x264 | ||
| + | |||
| + | === Docs == | ||
| + | |||
| + | - man menconder | ||
| + | - http://www.mplayerhq.hu/DOCS/HTML/en/MPlayer.html | ||
| - https://wiki.ubuntuusers.de/MEncoder | - https://wiki.ubuntuusers.de/MEncoder | ||
| - Interesting (German) link: https://wiki.ubuntuusers.de/DVDs_manuell_rippen | - Interesting (German) link: https://wiki.ubuntuusers.de/DVDs_manuell_rippen | ||
| - DVD auslesen: http://www.wiki.csoft.at/index.php/MEncoder_Scripts#DVD_auslesen | - DVD auslesen: http://www.wiki.csoft.at/index.php/MEncoder_Scripts#DVD_auslesen | ||
| + | |||
| + | ===== Audo and video editing by task == | ||
| + | ==== Get info about a media file == | ||
| + | |||
| + | ffprobe | ||
| + | | ||
| + | ==== Extract a section from an audio/video file == | ||
| + | |||
| + | This cuts out 61 seconds of all.mp3, starting at 41 min 8 sec from the beginning and writes the section to the file part.mp3. Note that no mp3 encoder is necessary and there is no quality loss. | ||
| + | |||
| + | ffmpeg -ss 41:08 -i all.mp3 -codec copy -t 61 part.mp3 | ||
| + | |||
| + | If you want to extract from the start just omit ''-ss'' | ||
| + | If you want to extract until the end just omit ''-t'' :?: | ||
| + | |||
| + | ==== Concat multiple files == | ||
| + | |||
| + | <code mylist.txt> | ||
| + | # this is a comment | ||
| + | file '/path/to/file1' | ||
| + | file '/path/to/file2' | ||
| + | file '/path/to/file3' | ||
| + | </code> | ||
| + | |||
| + | ffmpeg -f concat -i mylist.txt -c copy output | ||
| + | |||
| + | From https://trac.ffmpeg.org/wiki/Concatenate for format of ''mylist.txt'' | ||
| + | |||
| + | ==== Encode to x264 == | ||
| + | |||
| + | Test shows that both commands results in 2 files with the same size and bitrate:((Bitrate can be checked with ''ffprobe'')) | ||
| + | ffmpeg -i IN.VOB out.mkv | ||
| + | ffmpeg -i IN.VOB -c:v libx264 -preset medium -crf 23 -c:a libvorbis out.mkv | ||
| + | |||
| + | - 2-pass encoding (-pass 1/2) needs a certain bitrate option (-b:v) as well and seems to be useful only if you want an exact output file size. | ||
| + | - Constant Rate Factor (CRF) encoding seems not te be inferior compared to 2-pass | ||
| + | - crf 28 still seems to provide acceptable quality | ||
| + | - A slower preset seems to provide smaller file size with same quality at the cost of a higher encoding time. | ||
| + | - ''-preset slow'' helps about 5-10% compared to the ''medium'' preset | ||
| + | Source: http://trac.ffmpeg.org/wiki/Encode/H.264 | ||
| + | |||
| + | Rule of thumb to save space: Make a test encoding with default values (crf=23) and than increase the crf value until quality becomes inacceptable. | ||
| + | |||
| + | Useful opts: | ||
| + | <code> | ||
| + | -tune animation - good for cartoons | ||
| + | -an disable audio | ||
| + | -vn disable video | ||
| + | </code> | ||
| + | |||
| + | ==== Stream selection == | ||
| + | Example: Select all video stream and 2nd audio stream of first (and normally only) input file: | ||
| + | |||
| + | ffmpeg -i input.vob -map 0:v -map 0:a:1 output.mkv | ||
| + | |||
| + | ===== Manual DVD ripping == | ||
| + | ==== Copy raw Media to Disk == | ||
| + | |||
| + | Find the right track by reading DVD content using ''lsdvd''((available on slackbuilds)). ''%%mencoder dvd:// -v -o -%%'' may be helpfull as well | ||
| + | |||
| + | Extract track n with | ||
| + | mplayer dvd://n -dumpstream -dumpfile title_n.vob [-chapter m-m] | ||
| + | |||
| + | If reading and/or extaction does not work (check for completeness, passages with garbage!) then try the following method: | ||
| + | |||
| + | ==== Copy raw Media to Disk Alternative == | ||
| + | |||
| + | Mount the DVD and check all VOB-files with mplayer (or ffplay). Copy those you need to disk | ||
| + | |||
| + | Some VOBs have garbage at the beginning, delete it using extracting the valid section with ffmpeg (see above) | ||
| + | |||
| + | Some VOBs have garbage at the end. To cut this off, note the start offset seconds with ffprobe, eg: ''start: 4356.264000'' | ||
| + | Then note the desired end position with mplayer via on screen display or CLI output, eg 4528 | ||
| + | Subtraction of end from start gives the duration in seconds. Feed this to ffmpeg: | ||
| + | ffmpeg -i VTS_01_4.org.VOB -codec copy -t 171.736 VTS_01_4.VOB | ||
| + | |||
| + | Create a voblist text file for concatenation. See above | ||
| + | |||
| + | ==== Encode == | ||
| + | |||
| + | ffmpeg -i input.vob output.mkv | ||
| + | |||
| + | See above for more options | ||
| + | |||
| + | ==== Todo == | ||
| + | |||
| + | - Chapter markers | ||
| + | - subtitles | ||
| + | - multiple audio tracks | ||
| + | - Test ffmpeg -aspect | ||
| ===== DVD ripping with HandBrake == | ===== DVD ripping with HandBrake == | ||