Ich bin ein Programm mit ffmpeg Bibliotheken auf der Grundlage der Standard-ffmpeg Transcoder-Beispiel erstellen. Mein Ziel ist es, einen Video-Transcoder zu erstellen, der jedes geeignete Video (d. H. Welches ffmpeg lesen kann) in das WEBM-Format codiert. Die Frage ist, wie übergebe ich Optionen zum VP8-Encoder, um die Videoqualität und andere Parameter zu steuern? Ich meine, diese Option über C++ - Code zu übergeben.Wie VP8 Encoder-Option programmgesteuert in ffmpeg-basierten Programm übergeben
0
A
Antwort
1
Verwenden Sie den folgenden Code ein:
AVDictionary *options = NULL;
AVCodec *codec = avcodec_find_encoder(AVCODEC_ID_VP8);
AVCodecContext *ctx = avcodec_alloc_context3(codec);
av_dict_set(&options, "option", "value", 0);
int res = avcodec_open2(ctx, codec, &options);
if (res < 0)
error();
while (..) {
res = avcodec_encode_video2(ctx, ..);
if (res < 0)
error();
}
avcodec_close(ctx);
avcodec_free_context(ctx);
Die entsprechende „Option“/„Wert“ Paare sind, was Sie von den VP8 Codierung Führer von zum Beispiel bekommen würde das FFmpeg Wiki. Zum Beispiel, eine Bitrate von 1 mbps (erstes Beispiel in wiki) zu setzen, verwenden Sie:
av_dict_set_int(&options, "b", 1024 * 1024, 0);
oder
av_dict_set(&options, "b", "1M", 0);
Ich empfehle VP9 verwenden anstelle von VP8, werden Sie nicht große Qualität erhalten mit VP8, aber das ist natürlich Ihre Wahl.
Verwandte Themen
- 1. Wie kann man Bilder in VP8 mit der WebM VP8 Encoder API kodieren? (C/C++)
- 2. Programm programmgesteuert neu starten
- 3. Wie programmgesteuert "Dieses Programm als Administrator ausführen"
- 4. webm/vp8 player für java
- 5. Programm selbstsigniertes Zertifikat programmgesteuert installieren
- 6. Eine Voreinstellung übergeben, um programmgesteuert
- 7. Wie Programm Anwendungsberechtigung in App-Einstellungen programmgesteuert öffnen
- 8. Ein Programm programmgesteuert über die Befehlszeile ausführen
- 9. Detect VP8 Schlüsselbild (I-Frame) in RTP-Stream
- 10. Parameter programmgesteuert an Power BI-Filter übergeben
- 11. wie iis Version auf dem Programm programmgesteuert überprüfen
- 12. Wie wird Text programmgesteuert an Google Voice SMS übergeben?
- 13. Wie preparedForSegue programmgesteuert übergeben wird ein objected erstellt
- 14. Wie Parameter programmgesteuert an SSRS-Bericht übergeben werden
- 15. Übergeben Sie den Dateinamen an Programm
- 16. Wie Parameter an Scrapy Spinnen im Programm übergeben?
- 17. Wie kann ich Befehlszeilenargumente an ein Erlang-Programm übergeben?
- 18. Wie kann ich Befehlszeilenargumente an ein Perl-Programm übergeben?
- 19. wie Umleitung Programm zu übergeben, während sie mit gdb debuggen
- 20. Wie übergeben und lesen Sie Argumente zu einem Lua-Programm?
- 21. Ändern Video-Codec von VP8 zu VP9 mit nativen WebRTC
- 22. Übergeben von Argumenten an C++ - Programm zum Debuggen in VSCode
- 23. Übergeben Sie Argumente in C-Programm von der Befehlszeile
- 24. Registrieren Sie Windows-Programm mit dem mailto-Protokoll programmgesteuert
- 25. Übergeben von "*()" als Argument an ein Programm in Bash
- 26. ffmpeg Publishing VP8 zu Janus Gateway 100% CPU MBP
- 27. GPS programmgesteuert ausschalten, wenn ich mein Programm verlasse
- 28. Wie Bildschirm programmgesteuert in Linux trennen?
- 29. Wie programmgesteuert VB.NET-Verschleierung erkennen?
- 30. Wie programmgesteuert programmgesteuert zu einer programmgesteuert erstellten UIView hinzugefügt werden?
Danke, das hat mir geholfen. –