Recherche avancée

Médias (1)

Mot : - Tags -/sintel

Autres articles (50)

Sur d’autres sites (7942)

  • rtsp to rtmp using ffmpeg or any tool wrapper

    27 août 2017, par Chakri

    I have a requirement where I need to restream the RTSP stream from camera source to RTMP server. I know this may sound a repeated question but my exact scenario is I cannot do it manually over command line with ffmpeg command. I need a wrapper where I receive the rtsp and rtmp url from external source say through REST invocation. Then the code can trigger the ffmpeg restream.

    Basically flow is like this :

    1. Camera source application sends RTSP read event(could be basic HTTP(REST) request with RTSP url, metadata about camera info, serial no etc) to my streamer app

    Ex : /usr/bin/ffmpeg -i rtsp ://10.144.11.22:554/stream1 -f flv rtmp ://10.13.11.121:1935/stream1

    1. Streamer app computes the RTMP server url for corresponding camera and triggers a ffmpeg command to stream RTSP to RTMP

    2. Streamer app triggers above(2) in separate thread and keeps reading the logs for monitoring purpose. Also identifies the end of RTSP stream and sends an update(Example : RTSP END) event to UI

    Now at point(2) I need a suggestion. Here I need a stable wrapper/api which can help. I tried this through some Java wrappers but the process hangs or fails to read the output from ffmpeg. Also I need to handle streams from many cameras where spawning thread for each one could be exhaustive.

    So I am looking for some similar api/wrapper in C++ or Go Lang which might have more closer interaction in handling ffmpeg command.

    Please point if similar issue is addressed elsewhere

  • Start of video is not labeled as "0" in QuickTime Video from GoPro

    26 mars 2020, par John Terragnoli

    I’m trying to combine four GoPro videos into a single video, and then rotate it 90 degrees. However, the time scales on the bottom of the videos are all wrong. The videos are 17 minutes and 42 second. But the beginning time is labeled as 5:15:20:32 and the ending time is 5:33:01:32. It just looks really weird and I’d like to fix it. After I use ffmpeg to rotate and concatenate the videos, the problem persists. Could it possibly be fixed with Exiftool ?

    ffmpeg -safe 0 -f concat -i list.txt -vcodec copy -acodec copy merged_videos.MP4

    ffmpeg -i input.mov -vf "transpose=1" output.mov

    Here is the exiftool information on one of the videos :

    File Name                       : GOPR3023.MP4
    Directory                       : .
    File Size                       : 3.7 GB
    File Modification Date/Time     : 2018:04:12 14:56:16-05:00
    File Access Date/Time           : 2020:03:25 12:17:18-05:00
    File Inode Change Date/Time     : 2020:03:25 17:57:04-05:00
    File Permissions                : rwxrwxrwx
    File Type                       : MP4
    File Type Extension             : mp4
    MIME Type                       : video/mp4
    Major Brand                     : MP4 v1 [ISO 14496-1:ch13]
    Minor Version                   : 2013.10.18
    Compatible Brands               : mp41
    Movie Data Size                 : 4001979951
    Movie Data Offset               : 28
    Movie Header Version            : 0
    Create Date                     : 2018:04:12 14:38:32
    Modify Date                     : 2018:04:12 14:38:32
    Time Scale                      : 60000
    Duration                        : 0:17:42
    Preferred Rate                  : 1
    Preferred Volume                : 100.00%
    Preview Time                    : 0 s
    Preview Duration                : 0 s
    Poster Time                     : 0 s
    Selection Time                  : 0 s
    Selection Duration              : 0 s
    Current Time                    : 0 s
    Next Track ID                   : 6
    Firmware Version                : HD5.03.02.51.00
    Lens Serial Number              : NAH6092300301117
    Camera Serial Number Hash       : 34676f2cdf49b86a1514817a93377bf7
    Track Header Version            : 0
    Track Create Date               : 2018:04:12 14:38:32
    Track Modify Date               : 2018:04:12 14:38:32
    Track ID                        : 1
    Track Duration                  : 0:17:42
    Track Layer                     : 0
    Track Volume                    : 0.00%
    Image Width                     : 1920
    Image Height                    : 1080
    Graphics Mode                   : srcCopy
    Op Color                        : 0 0 0
    Compressor ID                   : avc1
    Source Image Width              : 1920
    Source Image Height             : 1080
    X Resolution                    : 72
    Y Resolution                    : 72
    Compressor Name                 : GoPro AVC encoder
    Bit Depth                       : 24
    Color Representation            : nclx 1 1 1
    Video Frame Rate                : 59.94
    Time Code                       : 3
    Balance                         : 0
    Audio Format                    : mp4a
    Audio Channels                  : 2
    Audio Bits Per Sample           : 16
    Audio Sample Rate               : 48000
    Text Font                       : Unknown (21)
    Text Face                       : Plain
    Text Size                       : 10
    Text Color                      : 0 0 0
    Background Color                : 65535 65535 65535
    Font Name                       : Helvetica
    Other Format                    : tmcd
    Warning                         : [minor] The ExtractEmbedded option may find more tags in the movie data
    Matrix Structure                : 1 0 0 0 1 0 0 0 1
    Media Header Version            : 0
    Media Create Date               : 2018:04:12 14:38:32
    Media Modify Date               : 2018:04:12 14:38:32
    Media Time Scale                : 60000
    Media Duration                  : 0:17:42
    Handler Class                   : Media Handler
    Handler Type                    : NRT Metadata
    Handler Description             : GoPro SOS
    Gen Media Version               : 0
    Gen Flags                       : 0 0 0
    Gen Graphics Mode               : srcCopy
    Gen Op Color                    : 0 0 0
    Gen Balance                     : 0
    Meta Format                     : fdsc
    Image Size                      : 1920x1080
    Megapixels                      : 2.1
    Avg Bitrate                     : 30.1 Mbps
    Rotation                        : 0

    Part 2
    There is a pretty obvious "stutter" at the 17:42 mark where the two clips are combined. I’ve tried using ffmpeg and iMovie, but both give the same results. The GoPro broke up the event into multiple clips on it’s own so it seems weird that there would be any information missing. Is there any way to get rid of this stutter ?

    Thanks !

  • Notes on Linux for Dreamcast

    23 février 2011, par Multimedia Mike — Sega Dreamcast, VP8

    I wanted to write down some notes about compiling Linux on Dreamcast (which I have yet to follow through to success). But before I do, allow me to follow up on my last post where I got Google’s libvpx library decoding VP8 video on the DC. Remember when I said the graphics hardware could only process variations of RGB color formats ? I was mistaken. Reading over some old documentation, I noticed that the DC’s PowerVR hardware can also handle packed YUV textures (UYVY, specifically) :



    The video looks pretty sharp in the small photo. Up close, less so, due to the low resolution and high quantization of the test vector combined with the naive chroma upscaling. For the curious, the grey box surrounding the image highlights the 256-square texture that the video frame gets plotted on. Texture dimensions have to be powers of 2.

    Notes on Linux for Dreamcast
    I’ve occasionally dabbled with Linux on my Dreamcast. There’s an ancient (circa 2001) distro based around a build of kernel 2.4.5 out there. But I wanted to try to get something more current compiled. Thus far, I have figured out how to cross compile kernels pretty handily but have been unsuccessful in making them run.

    Here are notes are the compilation portion :

    • kernel.org provides a very useful set of cross compiling toolchains
    • get the gcc 4.5.1 cross toolchain for SH-4 (the gcc 4.3.3 one won’t work because the binutils is too old ; it will fail to assemble certain instructions as described in this post)
    • working off of Linux kernel 2.6.37, edit the top-level Makefile ; find the ARCH and CROSS_COMPILE variables and set appropriately :
      ARCH ?= sh
      CROSS_COMPILE ?= /path/to/gcc-4.5.1-nolibc/sh4-linux/bin/sh4-linux-
      
    • $ make dreamcast_defconfig
    • $ make menuconfig ... if any changes to the default configuration are desired
    • manually edit arch/sh/Makefile, changing :
      cflags-$(CONFIG_CPU_SH4) := $(call cc-option,-m4,) \
              $(call cc-option,-mno-implicit-fp,-m4-nofpu)
      

      to :

      cflags-$(CONFIG_CPU_SH4) := $(call cc-option,-m4,) \
              $(call cc-option,-mno-implicit-fp)
      

      I.e., remove the '-m4-nofpu' option. According to the gcc man page, this will "Generate code for the SH4 without a floating-point unit." Why this is a default is a mystery since the DC’s SH-4 has an FPU and compilation fails when enabling this option.

    • On that note, I was always under the impression that the DC sported an SH-4 CPU with the model number SH7750. According to this LinuxSH wiki page as well as the Linux kernel help, it actually has an SH7091 variant. This photo of the physical DC hardware corroborates the model number.
    • $ make ... to build a Linux kernel for the Sega Dreamcast

    Running
    So I can compile the kernel but running the kernel (the resulting vmlinux ELF file) gives me trouble. The default kernel ELF file reports an entry point of 0x8c002000. Attempting to upload this through the serial uploading facility I have available to me triggers a system reset almost immediately, probably because that’s the same place that the bootloader calls home. I have attempted to alter the starting address via ’make menuconfig’ -> System type -> Memory management options -> Physical memory start address. This allows the upload to complete but it still does not run. It’s worth noting that the 2.4.5 vmlinux file from the old distribution can be executed when uploaded through the serial loader, and it begins at 0x8c210000.