PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : avcut - kleines Werkzeug zum präzisen Schneiden von h264-Videos unter Linux



monarc99
14.12.2015, 20:29
Klingt interessant :) Werde ich mal probieren.

monarc99
26.01.2016, 00:51
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?

SGE
27.01.2016, 01:44
Kompiliert hier unter Debian nicht.
libavcodec-dev libavformat-dev libavutil-dev sind installiert.




$ 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

monarc99
27.01.2016, 10:15
Kompiliert hier unter Debian nicht.
libavcodec-dev libavformat-dev libavutil-dev sind installiert.

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.

SGE
27.01.2016, 19:22
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.

tobiisdesired
28.01.2016, 14:00
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.

monarc99
01.02.2016, 22:51
Ich habe es mit MP4-Videos auch schon getestet, aber mit denen von OTR direkt noch nicht. Kommt auch auf die ToDo. Danke für's testen!

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

anyc
03.02.2016, 18:21
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?

anyc
07.02.2016, 22:39
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.

monarc99
13.02.2016, 21:55
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.

monarc99
23.02.2016, 23:25
Nur als Test:

ich hab geändert, dass der komplette Context kopiert wird und die OTR Settings mal einkodiert:

https://github.com/monarc99/avcut/commit/793f3cb998fad7a345e3b8d19c1c16be08b7f9f4


Und hier einmal das avcut Binary für Linux 64-bit compiliert: https://db.tt/3tKk141D
(ich hoffe, ich habs mit dem stripen nicht übertrieben)

Vielleicht könnte es jemand testen (mit pyotrcut). Da ich momentan keinen OTR Premium Account habe, ist es schwer es selbst zu prüfen.

anyc
19.03.2016, 20:31
Ok, interessant! Ich muss den Patch mal noch testen - leider geht meine Freizeit seit ein paar Wochen für andere Dinge drauf, die fertig werden müssen. Falls es noch jemand getestet hat, würde mich natürlich auch interessieren, ob es besser funktioniert. Ich hoffe, dass ich bald wieder etwas Zeit für avcut habe.