Welche GStreamer-Pipeline wird zum Kodieren eines Videos für YouTube bevorzugt?

Welche GStreamer-Pipeline wird zum Kodieren eines Videos für YouTube bevorzugt?

Ich möchte ein Video aufnehmen, um es auf YouTube hochzuladen.

Welche Pipeline könnte ich an meinen Stream anhängen, um die beste Qualität für YouTube zu erzielen (Anzahl der Neukodierungen minimieren usw.)?

Ich denke, es sollte einige Filter sowie Audio- und Video-Codecs enthalten, die am besten mit YouTube funktionieren.

Ich plane, gst-launchund zu verwenden ximagesrc.

Antwort1

Ich verwende derzeit die folgende Pipeline:

gst-launch-1.0 -e ximagesrc xid=$ID ! video/x-raw,framerate=24/1 ! queue ! videoconvert ! \
    videorate ! queue ! x264enc key-int-max=12 cabac=1 bframes=2 ! 'video/x-h264,profile=high' ! \
    queue ! mp4mux name=mux reserved-bytes-per-sec=100 reserved-max-duration=20184000000000 reserved-moov-update-period=100000000 ! \
    queue ! filesink location=video.mp4 pulsesrc device=$DEV ! queue ! audioconvert ! \
    audioresample ! 'audio/x-raw, rate=48000' ! queue ! lamemp3enc bitrate=320 ! queue ! mux.

Dann nehme ich Audio basierend auf der Audiospur auf und muxe sie mit Mencoder zusammen :-/

mencoder -ovc copy -oac mp3lame video.mp4 -audiofile audio.wav -o cut.mp4 -endpos 27:13

Ich habe noch nicht herausgefunden, wie man AAC kodiert (was von YouTube bevorzugt wird) und es hat für mich keine Priorität mehr.

Antwort2

Tatsächlich habe ich am Ende die App „Simple Screen Recorder“ verwendet. Der Nachteil ist, dass sie sich nicht auf das X11-Fenster beschränken kann (nur Koordinaten), aber der Vorteil ist, dass sie ziemlich gute Videos mit Audio-Video-Synchronisation produziert, was bei GST ein Problem war.

verwandte Informationen