FFmpeg + NVENC-Codierung: seltsames Seitenverhältnis
Mein Quellvideo ist MPEG-2, 720x576, DAR = 16: 9. Mit FFmpeg und dem h264_nvenc-Encoder konvertiere ich ihn in H.264. Das Problem: Die Ausgabe-AR ist seltsam / falsch / inkosistent. Befehlszeile:
>ffmpeg -i "d:\in.mpg" -aspect 16:9 -c:v h264_nvenc -c:a copy -t 15 "d:\out.mp4" ffmpeg version N-83280-gcba4f0e Copyright (c) 2000-2017 the FFmpeg developers built with gcc 5.4.0 (GCC) configuration: --disable-static --enable-shared --enable-gpl --enable-version3 --enable-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib libavutil 55. 45.100 / 55. 45.100 libavcodec 57. 75.100 / 57. 75.100 libavformat 57. 65.100 / 57. 65.100 libavdevice 57. 2.100 / 57. 2.100 libavfilter 6. 71.100 / 6. 71.100 libswscale 4. 3.101 / 4. 3.101 libswresample 2. 4.100 / 2. 4.100 libpostproc 54. 2.100 / 54. 2.100 [mpeg @ 000000000223ab20] start time for stream 0 is not set in estimate_timings_from_pts Input #0, mpeg, from 'd:\in.mpg': Duration: 02:59:33.92, start: 0.500000, bitrate: 3401 kb/s Stream #0:0[0x1bf]: Data: dvd_nav_packet Stream #0:1[0x1c0]: Audio: mp2, 48000 Hz, stereo, s16p, 192 kb/s Stream #0:2[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, top first), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc File 'd:\out.mp4' already exists. Overwrite ? [y/N] y Output #0, mp4, to 'd:\out.mp4': Metadata: encoder : Lavf57.65.100 Stream #0:0: Video: h264 (h264_nvenc) (Main) ([33][0][0][0] / 0x0021), yuv420p, 720x576 [SAR 64:45 DAR 16:9], q=-1--1, 2000 kb/s, 25 fps, 12800 tbn, 25 tbc Metadata: encoder : Lavc57.75.100 h264_nvenc Side data: cpb: bitrate max/min/avg: 0/0/2000000 buffer size: 4000000 vbv_delay: -1 Stream #0:1: Audio: mp2 (i[0][0][0] / 0x0069), 48000 Hz, stereo, s16p, 192 kb/s Stream mapping: Stream #0:2 -> #0:0 (mpeg2video (native) -> h264 (h264_nvenc)) Stream #0:1 -> #0:1 (copy) Press [q] to stop, [?] for help frame= 375 fps=0.0 q=22.0 Lsize= 4122kB time=00:00:14.97 bitrate=2254.9kbits/s dup=19 drop=0 speed=28.9x video:3762kB audio:352kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.208697%
Für den Ausgabevideostrom steht "[SAR 64:45 DAR 16: 9]". Wenn ich jedoch das Ergebnis out.mp4 analysiere, heißt es:
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 720x576 [SAR 16:11 DAR 20:11], 2054 kb/s, SAR 64:45 DAR 16:9, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
Die Werte nach den eckigen Klammern sind korrekt, aber innerhalb der Klammern weiß ich nicht, warum diese DAR / SAR-Werte verwendet werden. Je nachdem, welche Werte vom Player später verwendet werden (Container oder Stream AR), kann das Ergebnis falsch sein. Es spielt keine Rolle, ob "-aspect 16: 9" verwendet wird oder nicht.
Wenn ich libx264 anstelle von h264_nvenc verwende, ist die Ausgabe-AR korrekt. Ich denke, es ist ein Encoder-Problem. Ich habe den neuesten Build verwendet, aber zuvor habe ich die offiziellen Versionen 3.2 und 3.2.2 verwendet
Ich bin überrascht, dass ich das gleiche Problem bisher nirgends gefunden habe. Bevor ich dies als Fehler meldet, möchte ich Sie um Ihre Meinung bitten, falls ich etwas falsch mache. Vielen Dank.
0 Antworten auf die Frage
Verwandte Probleme
-
4
Wie kann ich die Größe eines riesigen MP4-Videos reduzieren?
-
2
Wie bearbeite ich MP4 / H264-Videodateien in Sony Vegas Platinum 6?
-
2
Wie verwende ich meine GPU, um die Videocodierung zu beschleunigen?
-
1
Video für Android mit Adobe Media Encoder konvertieren
-
4
Verbinden Sie zwei h.264-Filmdateien und fügen Sie Kapitel zusammen.
-
4
Wie füge ich Clips von einer DVD in eine Website ein?
-
2
Wie kann ich eine VRO-Datei in eine AVI-Datei kodieren?
-
7
Mit welchem Tool kann ich DVD-Filme rippen?
-
1
Wie kann ich Probleme mit Interlaced-Video-Ruckeln / -Schnipsen bei der Wiedergabe auf DVD-Playern b...
-
4
Beste Software zum Konvertieren von Video in ein anderes Seitenverhältnis für verschiedene Bildschir...