Klinge84
Anmeldungsdatum: 26. Juni 2007
Beiträge: 279
|
Hallo, meine Kamera speichert Videos als MTS Datei ab. diese möchte ich in einen MP4 Container haben und zusätzlich muss das ganze deinterlaced werden. mit folgendem Code aus dem Internet habe ich es ganz gut hinbekommen.
möchte aber das Maximum an Qualität behalten, kann jemand die ganzen Optionen enschlüsseln ? momentan werden die Ausgangscodecs (H264/AC3) behalten und es wird mit yadif deinterlaced. | ffmpeg -threads 4 -i 00000.MTS -vcodec libx264 -deinterlace yadif=1 -cmp +chroma -g 250 -partitions +parti4x4+partp8x8+partb8x8 -i_qfactor 0.71 -keyint_min 25 -b_strategy 1 -flags +loop -acodec ac3 -ar 48000 -ab 256k -ac 2 outputfile.mp4
|
|
redknight
Moderator & Supporter
Anmeldungsdatum: 30. Oktober 2008
Beiträge: 21668
|
Klinge84 schrieb: momentan werden die Ausgangscodecs (H264/AC3) behalten
Nein, tust Du nicht. Du decodierst den Stream und encodierst ihn neu 😉 Streams belassen wäre der codec copy . Vermutlich muss das Video wegen des deinterlacings sowieso neu encodiert werden, das kann ich aber nciht mit Sicherheit sagen. und es wird mit yadif deinterlaced.
Dazu kann ich nicht sagen, mit den deinterlacing-filtern habe ich mich bisher nicht befasst.
|
XM-Franz
Supporter
Anmeldungsdatum: 15. Juni 2010
Beiträge: 3439
|
Lies mal
und zeige die vollständige Ausgabe - d.h. Prompt, Befehl, Ausgabe, Prompt - zu ffmpeg -i 0000.mts hier im Codeblock.
|
Klinge84
(Themenstarter)
Anmeldungsdatum: 26. Juni 2007
Beiträge: 279
|
Das meinte ich ja der Codec bleibt der gleiche.. Neu encodieren muss man wegen deinterlacing hab es schon mit Copy probiert dann klappt es nicht..
|
Klinge84
(Themenstarter)
Anmeldungsdatum: 26. Juni 2007
Beiträge: 279
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 | ariel@Acer:~/Schreibtisch/Test$ ffmpeg -i 00000.MTS
ffmpeg version 2.8.6-1ubuntu2 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 5.3.1 (Ubuntu 5.3.1-11ubuntu1) 20160311
configuration: --prefix=/usr --extra-version=1ubuntu2 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv
WARNING: library configuration mismatch
avcodec configuration: --prefix=/usr --extra-version=1ubuntu2 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv --enable-version3 --disable-doc --disable-programs --disable-avdevice --disable-avfilter --disable-avformat --disable-avresample --disable-postproc --disable-swscale --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libvo_aacenc --enable-libvo_amrwbenc
libavutil 54. 31.100 / 54. 31.100
libavcodec 56. 60.100 / 56. 60.100
libavformat 56. 40.101 / 56. 40.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 40.101 / 5. 40.101
libavresample 2. 1. 0 / 2. 1. 0
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 2.101 / 1. 2.101
libpostproc 53. 3.100 / 53. 3.100
Input #0, mpegts, from '00000.MTS':
Duration: 00:00:18.72, start: 1.040000, bitrate: 22853 kb/s
Program 1
Stream #0:0[0x1011]: Video: h264 (High) (HDMV / 0x564D4448), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:1[0x1100]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 256 kb/s
Stream #0:2[0x1200]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090), 1920x1080
At least one output file must be specified
ariel@Acer:~/Schreibtisch/Test$
|
|
mediaDS
Anmeldungsdatum: 30. März 2009
Beiträge: 236
|
Klinge84 schrieb: 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 | ariel@Acer:~/Schreibtisch/Test$ ffmpeg -i 00000.MTS
ffmpeg version 2.8.6-1ubuntu2 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 5.3.1 (Ubuntu 5.3.1-11ubuntu1) 20160311
configuration: --prefix=/usr --extra-version=1ubuntu2 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv
WARNING: library configuration mismatch
avcodec configuration: --prefix=/usr --extra-version=1ubuntu2 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv --enable-version3 --disable-doc --disable-programs --disable-avdevice --disable-avfilter --disable-avformat --disable-avresample --disable-postproc --disable-swscale --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libvo_aacenc --enable-libvo_amrwbenc
libavutil 54. 31.100 / 54. 31.100
libavcodec 56. 60.100 / 56. 60.100
libavformat 56. 40.101 / 56. 40.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 40.101 / 5. 40.101
libavresample 2. 1. 0 / 2. 1. 0
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 2.101 / 1. 2.101
libpostproc 53. 3.100 / 53. 3.100
Input #0, mpegts, from '00000.MTS':
Duration: 00:00:18.72, start: 1.040000, bitrate: 22853 kb/s
Program 1
Stream #0:0[0x1011]: Video: h264 (High) (HDMV / 0x564D4448), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:1[0x1100]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 256 kb/s
Stream #0:2[0x1200]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090), 1920x1080
At least one output file must be specified
ariel@Acer:~/Schreibtisch/Test$
|
Was willst du uns mit diesem bedeutungs-schwangeren Codeblock sagen ? Die relevanten Fehlermeldungen bzw. Warnungen stehen doch drin. Wenn du die Qualität erhalten willst, nimm DnxHD oder ProRes - sogenannte Intermediate Codecs. Hängt alles davon ab, was du nach dem Transkodieren mit dem Video machen willst.
|
redknight
Moderator & Supporter
Anmeldungsdatum: 30. Oktober 2008
Beiträge: 21668
|
mediaDS schrieb: Was willst du uns mit diesem bedeutungs-schwangeren Codeblock sagen ?
Dass er das getan hat, was XM-Franz angefordert hat 😉 Wenn du die Qualität erhalten willst, nimm DnxHD oder ProRes - sogenannte Intermediate Codecs.
Macht es noch Sinn, von H.264 zu einem Intermediate zu kodieren und danach wieder davon weg?
|
mediaDS
Anmeldungsdatum: 30. März 2009
Beiträge: 236
|
redknight schrieb: mediaDS schrieb:
Dass er das getan hat, was XM-Franz angefordert hat 😉
Bin blind. Kaufe Brille 😉
Macht es noch Sinn, von H.264 zu einem Intermediate zu kodieren und danach wieder davon weg?
Hängt davon ab. Wenn ich Rohmaterial in h.264 bekomme, transkodiere ich es nach ProRes als Master bzw. Intermediate, um es dann beliebig und ohne Qualitätsverlust in Lightworks Pro oder Natron weiterverarbeiten zu können. Und daraus wird dann das Endergebnis wieder nach h.264 erstellt. Wenn er natürlich nichts weiter machen möchte, ist ein Transkodieren vom Ausgangsformat im .mts Container nach hochbittigem h.264 im .mkv oder .mp4 Container vollkommen ausreichend, um die Qualität weitgehend zu erhalten. TE möchte das Ausgangsvideo nur in höchstmöglicher Qualität anschauen = h.264 mit hoher Bitrate (variabel) TE möchte ein Master für Bearbeitung erstellen = ProRes oder DnxHD (sehr hohe Bitrate, grosse Datei) Vielleicht kann er ja mit seinem NLE der Wahl bereits die .mts laden - deinterlacen und dann exportieren. Das spart einen unnötigen Qualitätsverlust durch ffmpeg-Transkodierung. Aber das muss er ja selber entscheiden.
|
MisterIgo
Anmeldungsdatum: 23. April 2009
Beiträge: 945
|
Um mal die Ursprungsfrage zu beantworten.
Klinge84 schrieb: 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 | ffmpeg
-threads 4 # 4 Threads benutzen, überflüssig, erkennt FFmpeg von selbst
-i 00000.MTS # Inputdatei
-vcodec libx264 # x264 als Encoder nutzen, besser ist das neuere -c:v libx264
-deinterlace yadif=1 # Mit yadif im Modus "send_field" deinterlacen
# Der Parameter -deinterlace ist veraltet, am besten -filter:v yadif=1 benutzen
# Ich habe Yadif bislang immer im Standard "send_frame"-Modus ausprobiert, ob das =1 Vorteile hat,
# kann ich nicht sagen, siehe auch 'man ffmpeg-filters'
-cmp +chroma # Eine Option von x264, ziemlich sicher unnötig
-g 250 # Eine weitere undokumentierte Funktion von x264, ich schätze mal das maximale Intervall an nicht I-Frames
-partitions +parti4x4+partp8x8+partb8x8 # Eine Option von x264, die Art der erlaubten Partitionen
-i_qfactor 0.71 # Eine Option von x264, anscheinend die Wahrscheinlichkeit mit der I- und P-Frames ausgewählt werden
-keyint_min 25 # Eine Option von x264, minimale Anzahl Frames zwischen zwei I-Frames
-b_strategy 1 # Eine Option von x264, Strategie, mit der I/P/B-Frames gesetzt werden
-flags +loop # Aktiviert den Deblocking-Filter von x264, der sowieso angeschaltet ist
-acodec ac3 # ac3 als Ausgabeton nutzen, auch hier ist das neuere -c:a ac3 besser
-ar 48000 # 48000 kBit/s als Audio-Samplerate nutzen, diese Option macht für gewöhnlich keinen Sinn
-ab 256k # Den Ton mit einer Bitrate von 265 kBit/s codieren, dies beeinflusst maßgeblich die Qualität
-ac 2 # Den Ton in Stereo umwandeln oder so lassen
outputfile.mp4 # Ausgabedatei
|
Aufgrund der Inputwerte des Videos würde ich dir dieses Kommando empfehlen:
ffmpeg -i 00000.MTS -c copy -c:v libx264 -crf <...> -preset slow -filter:v yadif -map 0 outputfile.mp4
Aufschlüsselung:
| ffmpeg
-i 00000.MTS
-c copy # alle Codecs kopieren (verlustlos)
-c:v libx264 # außer den für Video, da rekodieren um zu deinterlacen
-crf <...> # Videoqualität setzen, sinnvolle Werte grob zwischen 15 und 35, kleiner ergibt bessere Qualität und größere Dateien
-preset slow # etwas bessere Features vom Codec aktivieren, dafür braucht das Encoding dann länger
-filter:v yadif # Yadif als Deinterlacer benutzen
-map 0 # alle Streams beibehalten, auch den Untertitelstream
outputfile.mp4
|
|
Parka_Boy
Anmeldungsdatum: 28. Juni 2008
Beiträge: Zähle...
|
Sofern das x264 Video überhaupt Interlaced ist, was meiner Erfahrung ehr nicht der Fall ist. Da das nicht mit ffmpeg -i angezeigt wird, kann man mal mit mediainfo den Scan type prüfen. Sollte es nicht Interlaced kann man sich die neu Encoden sparen.
|
Klinge84
(Themenstarter)
Anmeldungsdatum: 26. Juni 2007
Beiträge: 279
|
Danke für die Hilfe.. habe das Kommando von MisterIgo übernommen..
|
Nino.73
Anmeldungsdatum: 15. Februar 2018
Beiträge: Zähle...
|
hallo ich brauche bisler hilfe weil seite tage werde ich verrücht
halso ich mache einbissler trascoding
und gehe ich so vor wegen die verschowenlaufen titel pipe:///usr/bin/ffmpeg -i inputlink -vf yadif=0:0:0 -vcodec libx264 -preset veryfast -s 1280x720 -b 2500k -minrate 2500k -maxrate 2500k -bufsize 2500k -acodec aac -ab 128k -ar 44100 -strict -2 -metadata service_provider=TTVSTREAM -metadata service_name=TGCOM24 -f mpegts -tune zerolatency pipe:1 das ist ok wen nur mit logo ohne -vf yadif=0:0:0 werde ich so pipe:///usr/bin/ffmpeg -i inputlink -i /home/logo.png -filter_complex overlay=main_w-overlay_w-1750:main_h-overlay_h-995 -vcodec libx264 -preset veryfast -s 1280x720 -b 2500k -minrate 2500k -maxrate 2500k -bufsize 2500k -acodec aac -ab 128k -ar 44100 -strict -2 -metadata service_provider=TTVSTREAM -metadata service_name=TGCOM24 -f mpegts -tune zerolatency pipe:1 das ist ok aber die laufen titel sied verschwomen dann will ich auch dazu meine logo und -vf yadif=0:0:0(deinterlacing) gehe ich so vor pipe:///usr/bin/ffmpeg -i inputlink -i /home/logo.png -filter_complex overlay=main_w-overlay_w-1750:main_h-overlay_h-995 -vf yadif=0:0:0 -vcodec libx264 -preset veryfast -s 1280x720 -b 2500k -minrate 2500k -maxrate 2500k -bufsize 2500k -acodec aac -ab 128k -ar 44100 -strict -2 -metadata service_provider=TTVSTREAM -metadata service_name=TGCOM24 -f mpegts -tune zerolatency pipe:1 das probelm kommt fail
kann jemand mir helfen danke
|