gpt4 book ai didi

ffmpeg demux into audio 和 video 重置 PTS

转载 作者:行者123 更新时间:2023-12-04 22:53:12 29 4
gpt4 key购买 nike

解复用

我将 TS 段解复用为音频和视频,如下所示。

ffmpeg -y -i input.ts -vcodec copy -an output_video.ts
ffmpeg -y -i input.ts -acodec copy -vn output_audio.aac

检查输入
start_pts 上的 start_timeinput.ts 如下图所示。我能够使用 ffprobe -show_streams -print_format json input.ts 检查这些值
"start_pts": 8306558438,
"start_time": "92295.093756",

检查输出视频

输出 .ts 有一些默认的 start_ptsstart_time 值,如下所示。这些也是使用与上述相同的 ffprobe 命令获得的。
"start_pts": 126000,
"start_time": "1.400000",

检查输出音频
ffprobe 上的相同 output_audio.aac 命令显示输出 aac 具有无效的 codec_tagcodec_tag_string,如下所示。 start_ptsstart_time 不存在于 output_audio.aac 中。
"codec_tag_string": "[0][0][0][0]", (should have been [15][0][0][0])
"codec_tag": "0x0000", (should have been 0xf000)

问题
  • 想知道 start_ptsstart_timecodec_tag 中的这种差异是否是预期的?
  • 如果符合预期,我该怎么做才能确保所有这些参数都保留在输出中?
  • 如果不是预期的,我可以分享更多信息来追踪它吗?

  • 笔记

    ffprobeoutput_audio.aac 命令中,我发现其他输出不一致,例如 duration etc. 。我分享了我认为在这一点上最有值(value)的东西。如果需要,我可以分享上述所有执行的完整输出。

    [编辑 07/30/2018 - 08:00 MST] ffmpeg -y -i input.ts -vcodec copy -an output_video.ts -acodec copy -vn output_audio.aac 的日志如下所示。
    ffmpeg version 4.0.2 Copyright (c) 2000-2018 the FFmpeg developers
    built with Apple LLVM version 9.0.0 (clang-900.0.39.2)
    configuration: --prefix=/usr/local/Cellar/ffmpeg/4.0.2 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-gpl --enable-ffplay --enable-frei0r --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-librtmp --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-opencl --enable-videotoolbox --disable-lzma --enable-libopenjpeg --disable-decoder=jpeg2000 --extra-cflags=-I/usr/local/Cellar/openjpeg/2.3.0/include/openjpeg-2.3 --enable-nonfree
    libavutil 56. 14.100 / 56. 14.100
    libavcodec 58. 18.100 / 58. 18.100
    libavformat 58. 12.100 / 58. 12.100
    libavdevice 58. 3.100 / 58. 3.100
    libavfilter 7. 16.100 / 7. 16.100
    libavresample 4. 0. 0 / 4. 0. 0
    libswscale 5. 1.100 / 5. 1.100
    libswresample 3. 1.100 / 3. 1.100
    libpostproc 55. 1.100 / 55. 1.100
    [mpegts @ 0x7f88ed803000] start time for stream 0 is not set in estimate_timings_from_pts
    Input #0, mpegts, from 'i7h9456s_media_46185.ts':
    Duration: 00:00:06.05, start: 86216.852667, bitrate: 2898 kb/s
    Program 1
    Stream #0:0[0x102]: Data: timed_id3 (ID3 / 0x20334449)
    Stream #0:1[0x100]: Video: h264 (Constrained Baseline) ([27][0][0][0] / 0x001B), yuv420p(tv, smpte170m, progressive), 640x360 [SAR 1:1 DAR 16:9], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0:2[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp, 190 kb/s
    Output #0, mpegts, to '../output_video.ts':
    Metadata:
    encoder : Lavf58.12.100
    Stream #0:0: Video: h264 (Constrained Baseline) ([27][0][0][0] / 0x001B), yuv420p(tv, smpte170m, progressive), 640x360 [SAR 1:1 DAR 16:9], q=2-31, 29.97 fps, 29.97 tbr, 90k tbn, 90k tbc
    Output #1, adts, to '../output_audio.aac':
    Metadata:
    encoder : Lavf58.12.100
    Stream #1:0: Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp, 190 kb/s
    Stream mapping:
    Stream #0:1 -> #0:0 (copy)
    Stream #0:2 -> #1:0 (copy)
    Press [q] to stop, [?] for help
    frame= 180 fps=0.0 q=-1.0 Lsize= 2088kB time=00:00:06.03 bitrate=2833.8kbits/s speed= 904x
    video:1918kB audio:142kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.349750%

    最佳答案

    所有的差异都是意料之中的。除非另有设置,否则 FFmpeg 会删除输入时间戳偏移量。 MPEG-TS 多路复用器还添加了时间戳偏移。

    您可以在重新混合 TS 时保留源时间戳,也可以避免混合器的偏移量,如下所示,

    ffmpeg -y -copyts -i input.ts -vcodec copy -an -muxdelay 0 -muxpreload 0 output_video.ts

    .aac是原始 ADTS 流,不存在编解码器标记字符串。这是意料之中的。复用到 .m4a.mka如果需要标签,或者类似的容器。

    关于ffmpeg demux into audio 和 video 重置 PTS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51585661/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com