Klingt interessant Werde ich mal probieren.
Klingt interessant Werde ich mal probieren.
Mal Zeit gehabt, es auszuprobieren. (hat ein wenig gedauert)
Funktioniert wirklich gut ... ich hoffe du arbeitest weiter daran.
Funktioniert es denn auch mit den kleinen MP4 von OTR?
Kompiliert hier unter Debian nicht.
libavcodec-dev libavformat-dev libavutil-dev sind installiert.
Code:$ make cc -Wall -DAVCUT_VERSION="0.1" avcut.c -lavcodec -lavformat -lavutil -o avcut avcut.c: In function ‘encode_write_frame’: avcut.c:157:3: warning: implicit declaration of function ‘av_frame_free’ [-Wimplicit-function-declaration] avcut.c: In function ‘decode_packet’: avcut.c:618:3: warning: implicit declaration of function ‘av_frame_alloc’ [-Wimplicit-function-declaration] avcut.c:618:15: warning: assignment makes pointer from integer without a cast [enabled by default] avcut.c: In function ‘main’: avcut.c:785:12: error: ‘AVCodecContext’ has no member named ‘refcounted_frames’ make: *** [avcut] Error 1
Was für ein Debian ist es denn? Ist da noch libav anstatt ffmpeg drauf?
https://github.com/haasn/mpvhq/wiki/FFmpeg-versus-Libav
Ich würde versuchen, mal #CFLAGS=-DUSING_LIBAV im Makefile auszukommentieren, ob es dann klappt.
Ansonsten braucht man ein aktuelles ffmpeg.
Debian benutzt prinzipiell leider libav.
Und natürlich war ich auch schon so schlau das im Makefile auszuschalten, habe das aber heute nacht vergesssen zu erwähnen.
Nur ändert das am Ergebnis genau nichts.
Habe avcut unter Lubuntu 15.10 mit HQ und HD Aufnahmen getestet. Schnittlisten waren von cutlist.net geladen und mit pyotrcut (mit Option -s 0.1) aufgerufen. Leider mit mäßigem Erfolg.
HQ Aufnahmen hatten nur Ton bis genau zur Hälfte des geschnittenen Films.
Bei HD Aufnahmen war der timecode kaputt und man konnte im Video nicht springen.
pyotrcut beschwerte sich bei einigen Schnittlisten, das diese nicht UTF-8 sind.
Bei Interesse an Beispieldateien einfach eine PM an mich.
Eine Frage noch:
Ist es normal oder Absicht, dass er mit diesen Einstellungen kodiert?
options: cabac=0 ref=4 deblock=1:0:0 analyse=0x3:0x113 me=dia subme=8 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=4 chroma_me=0 trellis=0 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=1 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=0 b_bias=0 direct=1 weightb=1 open_gop=1 weightp=2 keyint=12 keyint_min=7 scenecut=0 intra_refresh=0 rc_lookahead=12 rc=abr mbtree=1 bitrate=858 ratetol=1.0 qcomp=0.50 qpmin=16 qpmax=26 qpstep=4 ip_ratio=1.40 aq=1:1.00
avcut versucht Parameter aus der Eingabedatei zu kopieren. qmin=16, qmax=26 und max_qdiff=4 werden in Zeile 920 und folgend gesetzt, da diese nicht aus der Originaldatei gelesen werden können. Die sollten, soweit ich gelesen habe, gute Qualität bieten - was in Bezug auf die Dateigröße bei den kleinen Bereichen, die neu encodiert werden, nicht viel ausmachen sollte. Habe da aber noch keine Tests mit unterschiedlichen Werten gemacht.
Kann natürlich sein, dass bei anderen Parametern auch irgendwelche Standardwerte benutzt werden. Bisher ist mir nichts negativ aufgefallen. Hast du Vorschläge was man verbessern sollte?
Ich habe jetzt mal etwas nachgeschaut und das ganze ist etwas merkwürdig. Ich vermute momentan, dass ffmpeg die Kodierungsparameter garnicht komplett ausliest und daher die Parameter nicht übereinstimmen, obwohl ich sie (über ffmpeg) kopiere. Komischerweise werden die Parameter, die dann in ffmpeg gesetzt sind, auch nicht immer übernommen und andere für das Kodieren benutzt. Ich werde mal weitersuchen, ob ich dafür ne Erklärung finde.
Ich bin mir nicht sicher, ob die Encodierparameter wirklich im Stream gespeichert sind.
Und wenn sie im Stream vorhanden sind, sind die dann im dec_cctx oder im dec_cctx->priv_data gespeichert?
Also für mich sieht es so aus, als ob die kopierten Einstellungen aus dec_cctx verwendet werden.